var typ=rdatatype 额,吧返回值传给外部变量需要在ajax里设置
async:false,//使用同步请求,因为异步请求不能将返回值传给全局变量;
如
$ajax({
type: "POST",
datatype: "json",
async:false,//使用同步请求,因为异步请求不能将返回值传给全局变量;
data: "id="+id+"&id2="+id2,
url: url,
beforeSend:function(){
},
success:function(r){
var typ=rdatatype;
}
});
这个是以前碰到过,在度娘找到的,为神马也不清楚
处理业务数据,产生JSon数据代码如下:
protected void Page_Load(object sender, EventArgs e)
{
string u = Request["UserName"];
string p = Request["Password"];
string output = stringFormat("'UserName':'{0}','Password':'{1}'", u, p);
ResponseWrite("[{");
ResponseWrite(output);
ResponseWrite("}]");
ResponseEnd();
}
详细:>
在C#中怎么解析JSON数据,并获取到其中的值,案例如下:
#JSON数据为:{"phantom":true,"id":"ext-record-10","data":{"MID":1019,"Name":"aaccccc","Des":"cc","Disable":"启用","Remark":"cccc"}}。#需要得到结果为{"MID":1019,"Name":"aaccccc","Des":"cc","Disable":"启用","Remark":"cccc"}的字符串。
功能代码:
using SystemRuntimeSerializationJson;[Serializable]
public class InternalClass
{
public int MID;
public string Name;
public string Des;
public string Disable;
public string Remark;
}
[Serializable]
public class OuterClass
{
public bool phantom;
public string id;
public InternalClass data;
}
private void button2_Click(object sender, EventArgs e)
{
const string json = @"{""phantom"":true,
""id"":""ext-record-10"",
""data"":
{""MID"":1019,
""Name"":""aaccccc"",
""Des"":""cc"",
""Disable"":""启用"",
""Remark"":""cccc""}}";
DataContractJsonSerializer ser1 = new DataContractJsonSerializer(typeof(OuterClass));
using (MemoryStream ms = new MemoryStream(EncodingUnicodeGetBytes(json)))
{
OuterClass foo1 = ser1ReadObject(ms) as OuterClass;
}
}
如果你的json是以字符串参数的形式传到ashx,你可以在ashx接收参数并反序列化为一个自定义的对象
//反序列化
public static T FromJsonTo<T>(string jsonString)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
using (MemoryStream ms = new MemoryStream(EncodingUTF8GetBytes(jsonString)))
{
T jsonObject = (T)serReadObject(ms);
return jsonObject;
}
}
如果不是这样当前台传输类似这样(你的json前面差一个属性名,我加了个people):
people:[{"uid":35301,"uname":"%u9EC4%u8363"},
{"uid":437,"uname":"%u6211%u884C%u5BA2%u670D"}]
则在ashx里需要这么取:
string a = contextRequestForm["people[0][uid]"]ToString();
contextResponseWrite(a);
json在前、后台传输时,只是个序列化后的字符串而已,前提是你要知道后台C#的object结构
json在前、后台接收后,需要类型转换成指定的 object,前台用(eval函数),后台就多样化了,一般我用NewtonsoftJsondll这个,把json字符串强制类型转换成指定的object
以上就是关于如或获得JSON的值{"data":{"data":"\r\n。。。。>","type":"dialog"},"success":True,"error":0}全部的内容,包括:如或获得JSON的值{"data":{"data":"\r\n。。。。>","type":"dialog"},"success":True,"error":0}、如何用jquery $.ajax向aspx页面传递json格式数据、c#如何读取json中的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)