1

だから私はこれを行う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"}]

問題1:\u00e5はøであると想定されています。この関数を除いて、他のすべてはutf8で動作しますが、これを修正する方法はありますか?

2番目の問題は、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;
    }
});
4

3 に答える 3

1

JSON_UNESCAPED_UNICODEオプションをjson_encodeに渡すことができます。

データの読み取りに使用するコードは確かに最適ではないように見えますが、データで実際に何をしているのかわからないため、データを改善する方法についてコメントするのは難しいです。

于 2012-07-23T11:17:34.210 に答える
0

2番目の問題には使用できます

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  
      }
    }
于 2012-07-23T11:23:08.270 に答える
-3

JSONでnull値を渡すことはできません。それらを空の文字列に置き換えます。クエリレベルで行うことをお勧めします

case columnname when is null then '' end as newcolumnname
于 2012-07-23T11:26:23.933 に答える