0

JSON 形式でデータを返す API を使用しています。応答の例はこれです

{
    "code": 200,
    "count": 4,
    "currentPage": 1,
    "date": "2013-05-24T09:19:37.964+1000",
    "executedQuery": "cafe",
    "message": "OK",
    "originalQuery": "cafe",
    "results": [{
            "aboutId": "b3ec5ac4096078f89fa4a9f3adcec930a1d4997c7cae30b026d61f8fcbf2013b",
            "categories": [{
                    "id": "35491",
                    "name": "Cafes",
                    "sensitive": false
                }],
            "detailsLink": "http://www.yellowpages.com.au/nsw/mt-colah/bobbin-inn-13830124-listing.html?referredBy=TAPI-jHOsyHrSfHBBlo0IExDjXZZJx6PszwX6",
            "hasExposureProducts": false,
            "id": "13830124",
            "listingType": "Business",
            "name": "Bobbin Inn",
            "primaryAddress": {
                "addressLine": "1 Chase Rd",
                "geoCodeGranularity": "PROPERTY",
                "latitude": "-33.678276",
                "longitude": "151.112964",
                "mappable": true,
                "postcode": "2079",
                "state": "NSW",
                "suburb": "Mt Colah",
                "type": "PHYSICAL"
            },
            "primaryContacts": [{
                    "type": "PHONE",
                    "value": "(02) 9457 7170"
                }],
            "pureMobileBusiness": false,
…

私が言えることから、この応答には多数の配列があります。ただし、作成メソッドでこのデータを解析できません

ここに私のコードがあります(これは私が定義したこのフィールドで機能していますが...以下を参照してください)

 for (var i in p) {
     str += blocka + uibare + p.executedQuery + " (" + p.executedQuery+ ")</div></div>";
     str += blockb + uibarc + p.executedQuery + "</div></div>";
     str += blockc + uibare + p.executedQuery + "</div></div>";
     str += blockd + uibarc + p.executedQuery + "</div></div>";
     str += blocke + uibare + p.executedQuery + "</div></div>";
      }

executeQuery は配列の一部ではないため、これは機能しています。ただし、たとえば結果配列の一部であると思われる「名前」を取得したい場合はどうすればよいですか? それとも私の読み方が悪いのでしょうか?

だから私は試しました

str += blockb + uibarc + p.results[i].name + "</div></div>";

データを取得しません。

4

1 に答える 1

1

resultsキーと値の単一オブジェクトを含む配列です。

試してみてくださいresult[0]["name"]

あなたの要求により適した:

str += blockb + uibarc + p.results[0]["name"] + "</div></div>";
于 2013-05-23T23:34:44.980 に答える