2012-02-12 9 views
-1

JavaScriptでJSONを解析しようとしています。私のJSONデータが以下のように見える場合、他の文字列ではなく "custom"で始まるすべてのJSON要素を繰り返し処理したいと考えています。これはどうすればいいですか?JSONの解析(JavaScript)

{ 
    "fields": { 
     "custom12": { 
      value: "dsada" 
     }, 
     "custom45": { 
      value: "adsadad" 
     }, 
     "test12": { 
      value: "12323" 
     } 
    } 
}​ 
+1

あなたのJSONが有効ではありません、http://jsonlint.com/ – Sarfraz

+0

は '配列にすることfields'をべきではないでしょうか。 –

+1

@DaveNewton:ネストされたデータを取得しない限り、ストレートなキーと値のペアはありません。 – Sarfraz

答えて

0
var newObject = {}, key; 
for(key in data.fields){ 
    if(key.search(/custom/) > -1){ 
    newObject[key] = data.fields[key]; 
    } 
} 
console.log(newObject); 
0

次反復し、プロパティの名前が含まれているかどうかをfields対象と小切手のpropertiescustom:あなたは私のようなそれを行うだろう提供JSON文字列で

var data = yourObjectLiteral, i, current; 

for(i in data.fields) { 
    if(i.indexOf('custom') > -1) { 

    current = data.fields[i]; 

    // ... your logic ... 
    } 
} 
0

<script src="json2.js"></script> 
<script> 
var raw = '{' 
+ ' "fields": {' 
+ ' "custom12": {' 
+ ' "value": "dsada"' 
+ ' },' 
+ ' "custom45": {' 
+ ' "value": "adsadad"' 
+ ' },' 
+ ' "test12": {' 
+ ' "value": "12323"' 
+ ' }' 
+ ' }' 
+ '}'; 
var data = JSON.parse(raw); 
var fields = data.fields; 
var message = ''; 
for (var key in fields) { 
    if (key.indexOf('custom') === 0) { 
     message += key + ': ' + fields[key].value + '\n'; 
    } 
} 
alert(message); 
</script> 

ただし、メッセージを少し書き直すと、簡単に見えます。

<script src="json2.js"></script> 
<script> 
var raw = '{' 
+ ' "custom12": "dsada",' 
+ ' "custom45": "adsadad",' 
+ ' "test12": "12323"' 
+ '}'; 
var fields = JSON.parse(raw); 
var message = ''; 
for (var key in fields) { 
    if (key.indexOf('custom') === 0) { 
     message += key + ': ' + fields[key] + '\n'; 
    } 
} 
alert(message); 
</script>