4

関数を使用してjsonから値を取得しようとしていJSON.parseます。私のjson応答は以下のとおりです。

{
  "rows": 10,
  "os": "0",
  "page": "1",
  "total": "122",
  "projects": {
    "P143841": {
      "id": "P143841",
      "locations": [{
        "geoLocId": "0002220957",
        "latitude": "3.866667",
        "longitude": "11.516667"
      }],
    }
  }
}

値 10 を取得できますJSON.parse(obj.rows)が、行を変数に割り当ててから、取得した関数にvar value = rows渡します。JSON.parse(obj.value)undefined

PS 応答パラメーターの名前はわかりません。つまり、上記の例から引用するかどうrowsかはわかりません。osデータベースからそれらを取得します。以下のコードを実行すると:

  for (var i=0;i<length;i++) {
    var value = responseParam_array[i];
    console.log(obj.value);
  }

出力は得られますが、どんな助けでも大歓迎です。

4

3 に答える 3

6

他の回答によると、個々のプロパティを解析する必要はありません。元の JSON を解析してから、結果のオブジェクトを操作するだけです。

しかし、この問題に関しては:

「行を変数に割り当てて、 取得した関数にvar value = rows 渡すとJSON.parse(obj.value) undefined

valueがプロパティの名前を保持する変数である場合、obj次が必要です。

obj[value]
// NOT
obj.value

「ドット」表記を使用すると、ドットの右側の部分が変数としてではなく、プロパティのリテラル名として取得されます。角括弧構文を使用すると、括弧内の式が評価され、その結果がプロパティ名として取得されます。

于 2013-01-22T11:12:05.477 に答える
1

オブジェクト全体をjson解析し、解析したオブジェクトを後で使用する必要があります(すべてのプロパティを解析する必要はありません)

var strObj = '{"rows": 10,"os": "0","page": "1","total": "122","projects":{"P143841":{"id":"P143841",}}';

var obj = JSON.parse(strObj);
var rows = obj.rows;
于 2013-01-22T10:44:32.130 に答える
0

あなたの質問を理解できたら:

var str = '{ "some": "JSON String like the one above with", "rows": 10 }';
var parsed = JSON.parse(str);
var whatYouWant = parsed.rows;
于 2013-01-22T10:43:56.700 に答える