以优雅的方式将响应文本解析为键值对
本文关键字:文本 键值对 响应 方式 | 更新日期: 2023-09-27 18:34:52
似乎
无法在搜索中找到我要查找的内容,因此这可能是重复的,但我还没有找到原件,所以......
我有一个 ajax 电话:
$.ajax({
url: "/events/instructor/",
type: 'POST',
data: {
instructorID: $(this).attr("id")
},
complete: function (data) {
$("#name").html(data["responseText"]["name"]);
$("#email").html(data["responseText"]["email"]);
$("#photo").html(data["responseText"]["photo"]);
$("#summary").html(data["responseText"]["summary"]);
$("#url").html(data["responseText"]["url"]);
}
});
返回的数据由服务器 (C#( 以 JSON 编码。
显然,data["responseText"]["fieldName"]
并没有这样做。我可以做拆分之类的事情,但这意味着如果格式发生变化,我需要确保上面的代码跟上数据形状的变化。
我怎样才能说一些像data["responseText']["fieldName"]
这样简单的事情来从该键中获取值?
我认为您需要先解析 json。 看看 api.jquery.com/jquery.parsejson
// data = '{ "name": "John" }'
var obj = jQuery.parseJSON( data );
console.log( obj.name);
// result will be "John"
附言也最好使用"成功"而不是"完整",你可以在这里阅读 .success(( 和 .complete(( 之间的区别?
success: function(data) {
console.log("response is good", data);
},
error: function (){
console.log("something is went wrong");
}
尝试像这样使用:
complete: function (data) {
var data=JSON.parse(data);
$("#name").html(data.responseText.name);
$("#email").html(data.responseText.email);
$("#photo").html(data.responseText.photo);
$("#summary").html(data.responseText.summary);
$("#url").html(data.responseText.url);
}
若要仅获得正确的响应,请使用成功。