所以我有一个php脚本可以做到这一点:
$rows = array();
while($r = mysql_fetch_assoc($sth2)) {
$rows[] = array($r['alternative'] => $r['amount']);
}
print json_encode($rows);
我得到这个输出:
[{"'u00e5l":"3"},{"vin":"3"},{"whiskey":"1"},{"gin":"1"},{"rom":"1"},{"vodka":"1"}]
问题一:''u00e5应该是ø。除了这个功能之外,其他所有功能都可以使用utf8,你知道如何解决这个问题吗?
第二个问题是,我似乎无法找到一种用javascript读取数据的好方法。我目前正在使用这个代码(我知道不是很好,但现在应该可以使用):
$.each(obj, function(key, val)
{
counter = counter +1 ;
switch (counter)
{
case 0:
numberOne = key;
valueOne = val;
break;
case 1:
numberTwo = key;
valueTwo = val;
break;
case 2:
numberThree = key;
valueThree = val;
break;
case 3:
numberFour = key;
valueFour = val;
break;
case 4:
numberFive = key;
valueFive = val;
break;
case 5:
numberSix = key;
valuesix = val;
break;
}
});
您可以将JSON_UNESCAPED_UNCODE选项传递给JSON_encode。
你用来读取数据的代码确实看起来不太理想,但很难评论如何改进它,因为我不知道你实际上在用数据做什么。
对于第二个问题,您可以使用
for(a in obj)
{
alert(a +' = '+obj[a]);
}
你还没有指定你想通过读取对象属性来实现什么,所以我把它留给你:)希望它能有所帮助。
编辑:
for(a in obj)
{
alert(a +' = '+obj[a]);
for(b in obj[a])
{
alert(b+' = '+obj[a][b]); // or alert(b+' '+obj[a].b); would work
}
}
您不能用JSON传递null值。用空字符串替换它们。我建议在查询级别进行此操作
case columnname when is null then '' end as newcolumnname