0

PHP と JSON には詳しくありませんが、Android プロジェクトで必要です。

どの JSON 形式が最も効果的かについて混乱しています。私が見たほとんどの例は、次のコードを使用して連想配列を使用しています。

$result = mysql_query($queryString)
while($row = mysql_fetch_assoc($result)){
    $json['contact']['ID'] = $row['ID'];
    $json['contact']['Name'] = $row['Name'];
}

フォーマット #1

{"contact":{"ID":"1","Name":"Andy"}}

私はその形式が好きですが、各キーに複数の値を保持させる方法がわかりません。したがって、クエリがAndyBobを返す場合、json にはBobのみが含まれます。

次に、次の PHP コードを見つけました。

while($row = mysql_fetch_row($result)){
    $json['contact'][] = $row;
}
echo json_encode($json);

json は次のようになります。

フォーマット #2

{"contact":[["1","Andy"],["2","Bob"]]}

しかし、Android では、それをJSONObject行う方法がありませんgetArray()。あったとしても、必要な、または呼び出される番号付き配列の使用は避けたいです。[0][1]

それで、どちらが良いですか?または他の代替手段はありますか?

ありがとう

4

4 に答える 4

2

ある方法が他の方法よりも「効果的」というわけではなく、目的が異なります。1 つは連想オブジェクトで、もう 1 つはインデックス付き配列です。

あなたの場合、オブジェクトのリスト (インデックス付き配列) が必要なようです。だから私がお勧めすることは次のとおりです:

$result = mysql_query($queryString)
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
    $json['contact'][] = $row;
}
echo json_encode($json);

これはjsonになります:

{"contact":[{"ID":"1","Name":"Andy"}, {"ID":"2","Name":"Bob"}]}
于 2012-12-18T07:57:16.063 に答える
1

mysql_fetch_array(); を使用しない理由 ?

于 2012-12-18T07:54:14.640 に答える
1
{"contacts":[{"id":1,"name":"Alice"},{"id":2,"name":"Bob"}]}

おそらく、連絡先オブジェクトの配列を含む主要な連絡先を持つオブジェクトですか?

于 2012-12-18T07:57:49.070 に答える
0

ハードコーディングすることもできます (mysql_fetch_array() ほど良くはありません)。

$result = array();
$i = 0;
while(...) {
  $result[] .= '{"id":"'.$i.'","name":"'.$fetch['name'].'"}';
  $i++;
}
echo "[".implode(',', $result)."]";
于 2012-12-18T08:00:17.607 に答える