我有一个网络服务,它返回这样的 json 数据..
{"d":"{\"RES\":[],\"STAT\":\"FAIL\",\"SID\":\"0\"}"}
我如何从中读取 STAT=FAIL 。我用 C# 编写了服务。
我的脚本是
$.ajax({
type: "POST",
url: "http://localhost/EMRDMSService/Service.asmx/User_Login",
data: "{lg:" + JSON.stringify(GetLogDet) + "}",
// url: "http://localhost/EMRDMSService/Service.asmx/Permission_List",
// data: "{userid:" + JSON.stringify(GetLogDet) + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
console.log(r.d.STAT);
}
});
但是 r.d.STAT 是未定义
?
有人可以帮我解决这个问题吗?
最佳答案
正如一些评论中所述,{"d":"{\"RES\":[],\"STAT\":\"FAIL\",\"SID\":\"0\"}"}
不是正确的 JSON。但是,如果您无法更新网络服务,您可以在 success
回调中尝试以下操作:
var d = JSON.parse(r.d);
console.log(d.STAT);
编辑以响应 OP 编辑 r.d.STAT
将未定义,因为 d
被解释为字符串,而不是对象。这就是为什么您必须解析它或更新网络服务以删除 d
值周围的引号。
关于javascript - Json数据提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16020491/