我不熟悉jquery。请你帮帮我吗? 我有一个来自url的json respone,但我不知道怎么样,我可以在jquery中读取键值。
例如,如何获取“HAWBItemEntity”值?
请查看下面的json-response。
{
"waybill_log": {
"TrackingResult": {
"HAWBEntity": {
"HAWBID": 282829899,
},
"HAWBHistoryEntity": [
{
"ActionDate": "4/26/2014 12:32:00 PM",
},
{
"ActionDate": "4/26/2014 12:32:00 PM",
}
],
"HAWBAttachmentEntity": [
{
"FileName": "Invoice_30018018516..pdf",
}
],
"HAWBItemEntity": null,
},
"HAWBAttachmentEntityExtendedList": [
{
"HAWBAttachmentEntity": {
"FileName": "Invoice_30018018516..pdf",
},
"AttachmentLink": "nw"
}
],
"CurrentStatus": "Delivery",
"ConsolsData": {
"ConsolNumber": null,
},
"ItemContainerData": {
"ContainerNumber": null,
},
"FlightDetails": null,
}
}
答案 0 :(得分:3)
使用jQuery的jQuery.parseJSON()
方法从JSON-String中获取JavaScript对象:
var test = jQuery.parseJSON(data); // Where 'data' is your JSON string
解析后,test
是一个JavaScript对象。 jQuery docs关于parseJSON()
:
<强> jQuery.parseJSON()强>
采用格式良好的JSON字符串并返回生成的JavaScript 宾语。 ...
关于Javascript对象:
// Declaration
var Obj = {
// Properties:
propertyOne: 'value', // string
propertyTwo: 52.3654, // float
// propertyThree is an object inside 'Obj'
// defined by the braces
// which may naturally contain its own properties & methods
propertyThree: {
propTrheeProperty: 42, // int
propTrheeAnotherProperty: 'whatever',
thePropThreeMethod: function () {
// your function code
}
// and so on, no coma after the last property/method
},
// and so on
// 'Obj' - Methods:
methodOne: function () {
// your function code
},
methodTwo: function () {
// your function code
}
// and so on, no coma after the last property/method
}
访问属性有两种可能性(但不是方法,见下文),所谓的 Property Accessor :
- “点符号”:
使用点表示法,您可以访问属性&amp;方法
var objOne = new Obj(); // Create a new instance of Obj
objOne.propertyTwo; // 52.3654
var objTwo = new Obj(); // Another instance of Obj
objTwo.propertyThtree.propTrheeProperty; // 42
objTwo.propertyThtree.propTrheeAnotherProperty; // whatever
// Accessing methods
objOne.methodOne(); // whatever your function methodOne() returns or does
objTwo.methodTwo(); // whatever your function methodTwo() returns or does
- “括号表示法”:
使用括号表示法,您还可以访问属性&amp;方法
objTwo['propertyThtree']['propTrheeProperty']; // 42
objOne['methodOne']();
而不是
objTwo.propertyThtree.propTrheeProperty; // 42
objOne.methodOne();
在您的情况下,这意味着:
window.console.log(test.waybill_log.TrackingResult.HAWBEntity.HAWBID);
// 282829899
或者
window.console.log(test.waybill_log.TrackingResult.HAWBEntity);
// Should give something like: Object { HAWBID: '282829899'}
或者
window.console.log(test.waybill_log.HAWBItemEntity);
// null
答案 1 :(得分:1)
一般情况下,您不必使用jquery读取json。
只需使用JSON.parse()
函数并且不使用Jquery即可轻松阅读。
var json = '{"result":true,"count":1}',
obj = JSON.parse(json);
alert(obj.count);
答案 2 :(得分:0)
答案 3 :(得分:0)
var json = $.parseJson(jsonString);
要获得“HAWBID”的值282829899,您可以使用:
var hawbid = json.waybill_log.TrackingResult.HAWBEntity.HAWBID;