如何在jquery中读取json结果?

时间:2014-04-26 11:41:53

标签: javascript jquery json getjson

我不熟悉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,
  }

}

4 个答案:

答案 0 :(得分:3)

  1. 使用jQuery的jQuery.parseJSON()方法从JSON-String中获取JavaScript对象:

    var test = jQuery.parseJSON(data); // Where 'data' is your JSON string
    
  2. 解析后,test是一个JavaScript对象。 jQuery docs关于parseJSON()

  3.   

    <强> 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)

如果你使用jQuery来获取JSON,你可以使用:

http://api.jquery.com/jquery.getjson/

它会为你解析JSON。

答案 3 :(得分:0)

var json = $.parseJson(jsonString);

要获得“HAWBID”的值282829899,您可以使用:

var hawbid = json.waybill_log.TrackingResult.HAWBEntity.HAWBID;