2

BackGround:SenchaTouchアプリケーションでこの単純なjson応答を解析しようとしています。

jsonの応答:

{
    "Australia": 
    [
        {
            "Currency": "AustralianDollar",
        }
    ],
    "INDIA": 
    [
        {
            "Currency": "INR"
        }
    ],
    "USA": 
    [
        {
            "Currency": "USD"
        }
    ]
}

国名に基づいて国の通貨を取得したい。

以下のように通貨の値を取得しようとしています。

var country = text.Australia.name;
console.log('Country name is'+country);

しかし、それは私にエラーを与えます。誰かが入力として国名を解析して通貨を取得する方法について説明できますか?

ありがとう、Gendaful

4

5 に答える 5

3

JSON文字列の場合text、これを行うことができます:

var obj = JSON.parse(text);
var australia = obj.Australia;
var aussie_currency = australia[0].Currency;

配列内に含まれるオブジェクトの奇妙なネストによりCurrency、配列インデックス参照が必要になることに注意してください[0]

于 2012-12-28T22:24:44.200 に答える
2

Sencha Touchでは、次を使用する必要があります

var object = Ext.decode(text);

json文字列をオブジェクトに変換します。次に、あなたの場合、「オーストラリア」はオブジェクトではなく配列であるため、最初の要素の通貨を取得する必要があります。

object.Australia[0].Currency;
于 2012-12-28T22:37:45.383 に答える
1

それを行う最も簡単な方法は次のとおりです。

var obj = eval("(" + text+ ')');

それを行うためのより良い/より安全な方法については、json.orgをチェックしてください。

ここでの実例。

の使用については、この互換性チャートを確認してくださいJSON.parse(text);

于 2012-12-28T22:23:12.127 に答える
0

JSON.parse() を使用する場合、これを行う最善の方法。すべてのブラウザーがこれをサポートしているわけではありませんが、https://github.com/douglascrockford/JSON-jsで Douglas Crockford 実装を使用してフォールバックを取得できます。

于 2012-12-28T23:31:41.367 に答える
-2

jQuery の$.parseJSON()を使用できます

その後、次を使用できます。

    var text = $.parseJSON(jsonString);
    var currency = text.Australia[0].Currency;

JSON 経由で取得した jsonString です。

お役に立てれば!

于 2012-12-28T22:32:25.553 に答える