在javascript或jquery中解析Json

Parse Json in javascript or jquery

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
how to parse json in javascript

我需要在javascript或jquery中解析这个JSON。请帮助我在下面的JSON中获取产品列表。

获取产品列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
   "main": {
       "ProductsData": {
           "Product": {
               "AdjustmentTypeID":"0",
               "BrandID":"4",
               "BrandName":"Joseph Joseph",
               "ChildrenGenerated":"False",
               "Cost":"8.50",
               "Description":"<span style="line-height: 120%; ">The ingenious dual-chamber design of this measuring jug eliminates the need for separate measuring spoons, cups and jugs. Use the small chamber to accurately measure liquids from as little as a single teaspoon (5ml), and then for greater volumes (up to 550ml) simply turn the jug 180&ordm; and use the larger chamber. Made from SAN material. Heat resistant to 90&deg;C \\/ 190&deg;F.<\\/span>\\u000d\\u000a<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:\\u000d\\u000a120%;mso-layout-grid-align:none;text-autospace:none;vertical-align:middle"><br \\/>\\u000d\\u000aDesign registered<span lang="EN-US"><o:p><\\/o:p><\\/span><\\/p>\\u000d\\u000a<p class="BasicParagraph"><span style="font-size:11.0pt;line-height:120%;\\u000d\\u000afont-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:windowtext"><br \\/>\\u000d\\u000aDimensions&nbsp;&nbsp; 7x 7 x 15cm<o:p><\\/o:p><\\/span><\\/p>",
               "DownloadFile":"",
               "InternalCode":"502842009381 0",
               "IsProductActive":"False",
               "ManufacturerID":"11",
               "ManufacturerName":"Joseph Joseph",
               "OptionMatchGroupID":"",
               "ParentProduct":"",
               "ProductID":"80",
               "ProductName":"2-in-1 Measuring Jug",
               "ProductTypeDescription":"Compound Product",
               "ProductTypeID":"8",
               "SiteID":"57",
               "StockLevel":"",
               "SupplierID":"3",
               "SupplierName":"Joseph Joseph",
               "UseStockControl":"False",
               "VatRate":"20"
            }
        }
    }
}


从文件读取json:

1
myobject = $.parseJSON("myfile.json")

或者从字符串中读取json:

1
myobject = $.parseJSON(jsonString)

现在获取所需的数据:

1
2
3
4
5
//Loops  into every Product in ProductsData:
$(myobject.main.ProductsData.Product).each(function(index, element){
    //Do something with Product variable such as below
    alert(element.BrandName + ' ' + element.SupplierName);
}

请务必使用http://jsonlint.com查看您的JSON数据。/


在jquery中使用parseJSON方法。

例子:

1
2
var obj = $.parseJSON(yourJsonString);
alert(obj.main.ProductsData.Product.Cost);


只需使用JSON.parse功能(mdn-docu-link)

1
yourObj = JSON.parse( jsonstring );

然后,您可以通过对象访问JSON字符串的任何属性,例如,

1
yourObj['main']['ProductsData']['ProductName']

将返回

1
"2-in-1 Measuring Jug"

在您的示例中。


jquery有一个有趣的json插件,叫做jquery json。

它允许您对JSON进行序列化和反序列化。工作原理如下:

1
2
3
4
5
6
7
var myObject = { property1:"value1", property2:"value2" };

// Converts myObject to JSON
var serialized = $.toJSON(myObject);

// Parses generated JSON into a new object
var deserialized = $.evalJSON(serialized);

你可以使用

1
var object = $.parseJSON(jsonString);

现在,您可以像访问本机javascript对象一样访问此对象:

1
object.main.ProductsData.Product.BrandName     // Joseph Joseph

使用javascript:JSON.parse(yourjavascriptobjecttoparse);

然后用var productx = yourjavascriptobjecttoparse['main']['ProductsData']['Product']参照产品。


可以使用jquery函数$.parseJSON(jsonString)获取json对象

如果jsonString存储了给定的字符串,

1
jsonObj = $.parseJSON(jsonString);

jsonObj.main.ProductsData.Product

将是一系列产品