4

重複の可能性:
javascript で json を解析する方法

この JSON を JavaScript または jQuery で解析する必要があります。以下の JSON で製品のリストを取得するのを手伝ってください。

商品一覧を取得するには

{
    "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"
            }
        }
    }
}
4

7 に答える 7

3

ファイルから JSON を読み取ります。

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

または、文字列から JSON を読み取ります。

myobject = $.parseJSON(jsonString)

必要なデータを取得します。

//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 データを確認してください。

于 2012-04-26T09:30:51.023 に答える
3

parseJSONメソッドを jQuery で使用します。

例:

var obj = $.parseJSON(yourJsonString);
alert(obj.main.ProductsData.Product.Cost);
于 2012-04-26T09:23:37.603 に答える
2

関数を使用するだけJSON.parseです ( MDN ドキュメント リンク)

yourObj = JSON.parse( jsonstring );

その後、オブジェクトを介して JSON 文字列の任意のプロパティにアクセスできます。たとえば、

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

戻ります

"2-in-1 Measuring Jug"

あなたの例では。

于 2012-04-26T09:23:27.343 に答える
0

jquery-jsonと呼ばれる jQuery 用の興味深い JSON プラグインがあります。

JSON のシリアル化と逆シリアル化の両方を行うことができます。それはこのように動作します:

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);
于 2012-04-26T09:37:39.147 に答える
0

jquery関数$.parseJSON(jsonString)を使用してjsonオブジェクトを取得できます

jsonString が指定した文字列を格納する場合、

jsonObj = $.parseJSON(jsonString);

jsonObj.main.ProductsData.Product

製品の配列になります

于 2012-04-26T09:23:18.843 に答える
0

JavaScript を使用します。JSON.parse(yourjavascriptobjecttoparse);

次にvar productx = yourjavascriptobjecttoparse['main']['ProductsData']['Product']、製品を参照します。

于 2012-04-26T09:24:55.847 に答える
0

使用できます

var object = $.parseJSON(jsonString);

これで、ネイティブ JavaScript オブジェクトのようにこのオブジェクトにアクセスできます。

object.main.ProductsData.Product.BrandName     // Joseph Joseph
于 2012-04-26T09:26:11.150 に答える