2012-02-16 9 views
1

マイPHP側でそれを反復サーバー上のJSONオブジェクトの生成に加え、クライアント側

$i = 1; 
    while ($row = mysql_fetch_array($query)) { 
     $productarray[$i][] = $row['product_id']; 
     $productarray[$i][] = $row['product_model']; 
     $productarray[$i][] = $row['product_type']; 
     $productarray[$i][] = $row['product_return']; 
     $i++; 
    } 
    $jsonstring = json_encode($productarray); 

これは、イム取得は、これは私がこの誰かを反復カント有効なJSON文字列

{ 
"1":["1","HFJ5G1.5","plat","graviteits"], 
"2":["2","HHJ5S2.5","holle plunjer","veer"], 
"3":["3","HTJ5S7.5","inbouw","veer"] 
} 

されたものですこのjsonを反復する方法を教えてください

jsonのサイトから、私はこれがフォーマットだと思いますが、どうすれば上記のjson文字列をこのフォーマットに変更できますか?

{ 
"1":[{"1","HFJ5G1.5","plat","graviteits"}], 
"2":[{"2","HHJ5S2.5","holle plunjer","veer"}], 
"3":[{"3","HTJ5S7.5","inbouw","veer"}] 
} 

答えて

1

をあなたのPHPコードの少しビットをリファクタリングする必要があります。

$productarray = array(); 
while ($product = mysql_fetch_assoc($query)) { // NOTE: using associative array 
    $productarray[] = $product; 
} 
echo json_encode($productarray); 

// Output 
// [{ 
//  "product_id": "1", 
//  "product_model": "HFJ5G1.5", 
//  "product_type": "plat", 
//  "product_rturn": "graviteits" 
// }, { 
//  "product_id": "2", 
//  "product_model": "HHJ5S2.5", 
//  "product_type": "holle plunjer", 
//  "product_rturn": "veer" 
// }, { 
//  "product_id": "3", 
//  "product_model": "HTJ5S7.5", 
//  "product_type": "inbouw", 
//  "product_rturn": "veer" 
// }] 

これで、繰り返し処理が非常に簡単になりました。

var o = [{ 
    "product_id": "1", 
    "product_model": "HFJ5G1.5", 
    "product_type": "plat", 
    "product_rturn": "graviteits" 
}, { 
    "product_id": "2", 
    "product_model": "HHJ5S2.5", 
    "product_type": "holle plunjer", 
    "product_rturn": "veer" 
}, { 
    "product_id": "3", 
    "product_model": "HTJ5S7.5", 
    "product_type": "inbouw", 
    "product_rturn": "veer" 
}]; 
for (var i = 0; i < o.length; i++) { 
    console.log("Product " + (i + 1) + " has model:" + o[i]["product_model"]); 
    console.log("Product " + (i + 1) + " has type:" + o[i]["product_type"]); 
} 
+0

var j = 1; for(var i in o){ アラート(o [i] [j]);/*すべての値を警告する必要がある*/ j ++ } – coolguy

+0

しかし、私はアラート[、O、B、J、E、C、T、O、B、 : – coolguy

+1

私は自分の答えを編集しました –

0

最初の文字列は有効なJSONであり、2番目の文字列は有効ではありません。オンライン(JSON構文チェックウェブサイトがあります)、またはwindow.JSON.parse()(すべての現代のブラウザ、旧式のブラウザにはwindow.JSONがありません)のブラウザコンソールで確認できます。これは、オブジェクトがあるので、あなたは

for (var i in o) { 
    //do something with o[i] 
} 

を繰り返すことができそれとも変更[]のために{}とキーの文字列 『』「:」を削除することもできますし、アレイがあります。

//Input JSON string: 
//[ 
// ["1","HFJ5G1.5","plat","graviteits"], 
// ["2","HHJ5S2.5","holle plunjer","veer"], 
// ["3","HTJ5S7.5","inbouw","veer"] 
//] 
JSON.parse('[["1","HFJ5G1.5","plat","graviteits"],["2","HHJ5S2.5","holle plunjer","veer"],["3","HTJ5S7.5","inbouw","veer"]]') 
//(to test it - works.) 
+0

何かをdownvoteする人たち(ここでは-1のように)はなぜ説明してください?私は私の説明に間違って何かを見ることができません(また、例は解析する!)。それとも報復として "奇妙な質問"を追加した男でしたか? (Qが消えた)。もしそうなら:いくつかの重大な問題があります。 –

0
{ 
"1":[{"1","HFJ5G1.5","plat","graviteits"}], 
"2":[{"2","HHJ5S2.5","holle plunjer","veer"}], 
"3":[{"3","HTJ5S7.5","inbouw","veer"}] 
} 

は正しいオブジェクトではありません。 '{}'があるときは、内部に昏睡状態で区切られた '名前:値'のセットを持つ必要があります。

だからあなたが持っている可能性があります

{ 
"1":["1","HFJ5G1.5","plat","graviteits"], 
"2":["2","HHJ5S2.5","holle plunjer","veer"], 
"3":["3","HTJ5S7.5","inbouw","veer"] 
} 

または

{ 
"1":[{nameField1:"1",nameField2:"HFJ5G1.5",nameField3:"plat",nameField4:"graviteits"}], // one object in the array 
... 
} 
1

は、次の操作を行います:

$i = 0; 
while ($row = mysql_fetch_array($query)) { 
    $productarray[$i]['id'] = $row['product_id']; 
    $productarray[$i]['model'] = $row['product_model']; 
    $productarray[$i]['type'] = $row['product_type']; 
    $productarray[$i]['ret'] = $row['product_return']; 
$i++; 
} 

$jsonstring = json_encode($productarray); 

JSONは次のようになります。次のようにこれを行うことができます

JSで今
[ 
{id:"1",model:"HFJ5G1.5",type:"plat",ret:"graviteits"}, 
{id:"2",model:"HHJ5S2.5",type:"holle plunjer",ret:"veer"}, 
{id:"3",model:"HTJ5S7.5",type:"inbouw",ret:"veer"} 
] 

することができますループのような:

for(i=0,i<jsonString.length;i++;){ 
    id = jsonString[i].id; 
    model = jsonString[i].model; 
    type = jsonString[i].type; 
    ret = jsonString[i].ret; 
} 
関連する問題