0

私のjsonは次のとおりです。

[
   {
      "_id":{
         "time":1381823399000,
         "new":false,
         "timeSecond":1381823399,
         "machine":263168773,
         "inc":-649466399
      },
      "asset":"RO2550AS1",
      "Salt Rejection":"90%",
      "Salt Passage":"10%",
      "Recovery":"59%",
      "Concentration Factor":"2.43",
      "status":"critical",
      "Flow Alarm":"High Flow"
   },
   [
      {
         "Estimated Cost":"USD 15",
         "AssetName":"RO2500AS1",
         "Description":"Pump Maintenance",
         "Index":"1",
         "Type":"Service",
         "DeadLine":"13 November 2013"
      },
      {
         "Estimated Cost":"USD 35",
         "AssetName":"RO2500AS1",
         "Description":"Heat Sensor",
         "Index":"2",
         "Type":"Replacement",
         "DeadLine":"26 November 2013"
      },
      {
         "Estimated Cost":"USD 35",
         "AssetName":"RO2550AS1",
         "Description":"Heat Sensor",
         "Index":"3",
         "Type":"Replacement",
         "DeadLine":"26 November 2013"
      },
      {
         "Estimated Cost":"USD 15",
         "AssetName":"RO2550AS1",
         "Description":"Pump Maintenance",
         "Index":"4",
         "Type":"Service",
         "DeadLine":"13 November 2013"
      },
      {
         "Estimated Cost":"USD 15",
         "AssetName":"RO3000AS1",
         "Description":"Pump Maintenance",
         "Index":"5",
         "Type":"Service",
         "DeadLine":"13 November 2013"
      },
      {
         "Estimated Cost":"USD 35",
         "AssetName":"RO3000AS1",
         "Description":"Heat Sensor",
         "Index":"6",
         "Type":"Replacement",
         "DeadLine":"26 November 2013"
      }
   ]
]

JavaScriptでアクセスする必要があります。

次のコードは機能しません。

var jsonobjstr = JSON.parse(jsonOutput);
alert ("asset: "+jsonobjstr.asset);
4

2 に答える 2

4

全体JSONが配列に含まれているためです。

alert("asset: "+jsonobjstr[0].asset);

http://jsfiddle.net/ExplosionPIlls/yHj5X/2/

于 2013-10-15T18:29:58.353 に答える
2

JavaScriptで

var somename = [];新しい配列を意味し、; var somename = {};新しいオブジェクトを意味します。

したがって、json が a[]で始まる場合はそれがオブジェクトの配列であることを意味し、{} で始まる場合はそれがオブジェクトであることを意味します。

json は で始まる[]ため、オブジェクトの配列であるため、次のようにして各オブジェクトにアクセスする必要があります。

json[n].asset配列の各位置 (n は整数)。

しかし:

あなたのJSONは奇妙です。常に 1 つの要素を持つ配列があるように見えます (true の場合、json は{}.

お気に入り:

{
    "id":
    {
        "code":1381823399000
    },
    "asset":"RO2550AS1",
    "history":
    [
        {
            "value":"USD 15"
        },
        {
            "value":"USD 15"
        },
        {
            "value":"USD 15"
        }
    ]
 }

ここでできること:

thing.id.code
thing.asset
thing.history[0].value
thing.history[1].value
于 2013-10-15T18:33:35.813 に答える