我的php端
$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"}]
}
答案 0 :(得分: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"]);
}
答案 1 :(得分: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将如下所示:
[
{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"}
]
现在在JS中你可以循环:
for(i=0,i<jsonString.length;i++;){
id = jsonString[i].id;
model = jsonString[i].model;
type = jsonString[i].type;
ret = jsonString[i].ret;
}
答案 2 :(得分:0)
第一个字符串是有效的JSON,第二个字符串不是。您可以在线查看(请参阅google,有JSON语法检查网站)或在浏览器控制台中使用window.JSON.parse()(任何现代浏览器,旧浏览器都没有window.JSON)。由于这是一个对象,您可以使用
进行迭代for (var i in o) {
//do something with o[i]
}
或者你可以只更改[] for []并删除键字符串'“”:'并有一个数组:
//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.)
答案 3 :(得分:0)
{
"1":[{"1","HFJ5G1.5","plat","graviteits"}],
"2":[{"2","HHJ5S2.5","holle plunjer","veer"}],
"3":[{"3","HTJ5S7.5","inbouw","veer"}]
}
不是正确的对象。当你有一个'{}'时,你需要有一组'name:value',由昏迷分隔。
所以你可能有:
{
"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
...
}