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 不同)并不是真的要用肉眼来观察。很快就很难看到一个对象在哪里开始和结束,以及什么包裹着什么。使用他的示例创建您的主要 JSON 对象,然后用您需要的任何对象填充它。完成后,您可以非常轻松地将其转换为字符串以进行传输,而无需查看它,并且这样做意味着不必担心哪些标签需要包含在哪些类型的引号中等。

eskalera 是 100% 正确的。JSON 要求所有字段都用引号括起来(关于它们是否可以是单引号或 *必须是双引号的规则因实现而异,但同样,这仅在您手动构建 JSON 时才相关,因为你应该只在它非常简单的情况下这样做(即使那样......可能不是)。

于 2012-06-01T08:30:16.030 回答