2012-04-09 6 views
1

私のモバイルアプリケーションは、外部jsonオブジェクトを読み取ります。動的に生成されたjson構造にキーノードが存在することをjavascriptでどのように確認できますか?私はhasOwnPropertyまたはcontainsKeyメソッドを試しましたが、運がありません。jquery mobile javascript json key

例のJSONデータ:

{ "element1": 
    { "element2": { "Number": "0" }, 
    "element3": { "Number": "1" }, 
    "element4": { "Number": "2" } 
    } 
} 

これらの要素は、動的に生成されると、私は重要な要素3は、この構造に存在するかどうかをチェックします。 data.element1.hasOwnProperty( "element3")で不運です。

答えて

1

はい、hasOwnProperty()メソッドはJsonオブジェクトでは機能しません。これは、Java Script Objectで動作します。ですから、このJsonオブジェクトをeval()メソッドを使ってJava Script Objectに変換し、そのオブジェクトの内部を調べるだけで済みます。

上記のJson構造を変換すると、別のObject(JSObjectなど)の内部にObject(element1)が作成されます。 element1には、element2、element3、element4というプロパティが含まれます。だからあなたのコードはこのようになるはずです。

var MyObject={ "element1": 
    { "element2": { "Number": "0" }, 
    "element3": { "Number": "1" }, 
    "element4": { "Number": "2" } 
    } 
} 

var JSObject=eval('(' + MyObject+ ')'); 

var IsExistElement3 = JSObject.element1.hasOwnProperty("element3"); 
+0

これは機能します。どうもありがとう! – nicBBB