2016-04-12 4 views
1

ループが空の場合なぜFOR-ループが戻る「引数」で、私はJSONオブジェクトを反復処理しています

私のJSONの構造は、この

{「someinfo」のようなものは以下のとおりです。 { "ABC": "123"、 "XYZ": "456"}}} JSONの 'パラメータ' が満たされている場合、ループ上記

for (var tempVal in jsonObj.someinfo.Parameter) { 
//print tempval 

} 

は正しい値を返します。

それが空の場合、それはJSONで引数

空の 'パラメータ' のようになります印刷されます:

{ "someinfo":{ "パラメータ": ""}}}

を正しい値を印刷するためには

空または空以外は、ループ内FOR-でどのような方法がある

+0

あなたは 'if'条件について話していますか? – Rayon

+0

あなたのjsonパラメータが間違っていると思います。これはオブジェクトまたはnullでなければなりません。オブジェクトでも空の文字列でもない – RvdK

+0

JSONファイルのコンテンツやフォーマットを制御できません。だから上の状態で何ができるのですか? –

答えて

1

ParameterobjectParameterstring

var jsonObj1={"someinfo":{"Parameter":{"ABC":"123","xyz":"456"}}}; 
 
var jsonObj2={"someinfo":{"Parameter":""}}; 
 
alert("Full: "+typeof jsonObj1.someinfo.Parameter+" ---- Empty: "+typeof jsonObj2.someinfo.Parameter)

ですいっぱいにすることはできません "の文字列でループ" JSONを変更したり、このようにテストすると、

if (typeof jsonObj1.someinfo.Parameter==="object") { 
    for (var tempVal in jsonObj.someinfo.Parameter) { 
    //print tempval 
    } 
} else { 
    //empty 
} 
0

あなただけの可能性jsonObj.someinfo.Parameterは、このようなオブジェクトであるかどうかを確認:

var json = {"someinfo":{"Parameter":{"ABC":"123","xyz":"456"}}}; 

if(typeof json.someinfo.Parameter === "object") { 
    for(var key in json.someinfo.Parameter) { 
    // print key 
    } 
} else { 
    // Do something when it is not an object (empty) 
} 
関連する問題