0

次のJSONリクエスト本文を作成しようとしています。

JSONを使用するのは初めてで、この例に従いますが、それでも苦労しています。

私はGSONを調べてきましたが、最初に純粋なJSONを管理したいと思っていました。おそらく、GSONライブラリを追加する価値がないほど小さいものについてはどうでしょうか。

コードを手伝ってもらえますか?

ありがとう。

{
   locations:
   [
      {
         latLng:
         {
            lat: 40.900799,
            lng: 8.606102
         }
      },
      {
         latLng:
         {
            lat: 42.900799,
            lng: 9.606102
         }
      }
   ]
}

編集:

これが私が利用しようとしているWebサービスであり、ここにリクエストのサンプルがあります。

4

3 に答える 3

3

jsonオブジェクトを使用します。そのようなことをしてください。jsonを手で書かないでください。簡単に間違いを犯す可能性があります。

public JSON() throws JSONException
{
    JSONArray locArr=new JSONArray();
    locArr.put(createLatLng(40.900799, 8.606102));
    locArr.put(createLatLng(42.900799, 9.606102));
    JSONObject main=new JSONObject();
    main.put("locations", locArr);
    Log.d("JSON",main.toString());      
}


public JSONObject createLatLng(double lat, double lng) throws JSONException
{
    JSONObject latLng=new JSONObject();
    latLng.put("lat",lat);
    latLng.put("lon",lng);
    JSONObject latLngWrap=new JSONObject();
    latLngWrap.put("latLng",latLng);
    return latLngWrap;
}
于 2012-06-01T08:28:21.023 に答える
1

JSON表記では、フィールド名の前後に「」が必要です。値が文字列の場合のみ、値をラップする必要があります。

{
 "locations":
   [
      {
         "latLng":
         {
            "lat": 40.900799,
            "lng": 8.606102
         }
      },
      {
         "latLng":
         {
            "lat": 42.900799,
            "lng": 9.606102
         }
      }
   ]
}

http://jsonlint.com/を使用して、JSONが正しいかどうかをいつでも確認できます。

于 2012-06-01T08:04:40.037 に答える
0

maciekczwaの答えを拡張します。JSON(おそらくXMLとは異なり)は、実際には人間の目で見ることを意図したものではありません。1つのオブジェクトがどこで開始および終了し、何が何をラップしているのかを確認するのは非常に困難になります。彼の例を使用してメインのJSONオブジェクトを作成し、必要なオブジェクトを入力します。すべて完了したら、文字列に変換して、見なくても非常に簡単に転送できます。このようにすると、どのラベルをどの種類の引用符で囲む必要があるかなどを気にする必要がなくなります。

そしてeskaleraは100%正しいです。JSONでは、すべてのフィールドを引用符で囲む必要があります(一重引用符にするか、二重引用符にする必要があるかどうかに関する規則は、実装ごとに異なりますが、これも、JSONを手動で作成する場合にのみ関係します。あなたはそれが非常に単純な場合にのみ行うべきです(そしてそれでも...おそらくそうではありません)。

于 2012-06-01T08:30:16.030 に答える