从android发送JSON对象

时间:2015-11-26 05:49:14

标签: android json web-services jsonobject

我需要从android发送一个JSON对象,我应该发送的格式为:

{
  "type": "sample string 1",
  "features": [
    {
      "type": "sample string 1",
      "properties": {
        "fulcrum_id": "sample string 1",
        "fulcrum_parent_id": "sample string 2",
        "fulcrum_record_id": "sample string 3",
        "version": "sample string 4",
        "created_at": "sample string 5",
        "updated_at": "sample string 6",
        "created_by": "sample string 7",
        "updated_by": "sample string 8",
        "form010058": "sample string 9",
        "form010059": "sample string 10",
        "form010060": "sample string 11",
        "form010060_other": "sample string 12"
      },
      "geometry": "sample string 2"
    },
    {
      "type": "sample string 1",
      "properties": {
        "fulcrum_id": "sample string 1",
        "fulcrum_parent_id": "sample string 2",
        "fulcrum_record_id": "sample string 3",
        "version": "sample string 4",
        "created_at": "sample string 5",
        "updated_at": "sample string 6",
        "created_by": "sample string 7",
        "updated_by": "sample string 8",
        "form010058": "sample string 9",
        "form010059": "sample string 10",
        "form010060": "sample string 11",
        "form010060_other": "sample string 12"
      },
      "geometry": "sample string 2"
    },
    {
      "type": "sample string 1",
      "properties": {
        "fulcrum_id": "sample string 1",
        "fulcrum_parent_id": "sample string 2",
        "fulcrum_record_id": "sample string 3",
        "version": "sample string 4",
        "created_at": "sample string 5",
        "updated_at": "sample string 6",
        "created_by": "sample string 7",
        "updated_by": "sample string 8",
        "form010058": "sample string 9",
        "form010059": "sample string 10",
        "form010060": "sample string 11",
        "form010060_other": "sample string 12"
      },
      "geometry": "sample string 2"
    }
  ]
}

现在,我没有办法编写这种类型的JSON对象。 我想知道我是否必须编写一个JSON数组然后逐个放入每个条目,或者我可以直接获取具有此数据的对象并将其传递给JSON:

JSONObject jsonObject = new JSONObject();
jsonObject.accumulate("type", obj);

请指导我编写这种类型的JSONObject,因为我最近学过JSON Web服务,但没有得到一个逻辑来塑造这个复杂的对象。

3 个答案:

答案 0 :(得分:0)

你基本上想把Json字符串发送到服务器所以我认为以下程序解决了你的问题:

1.将此jar添加到依赖项下的build.gradle文件中:

'com.google.code.gson:gson:2.3.1'
  1. 现在添加一个包含所需字段名称的类,并将它们转换为您发布的json字符串格式:
  2. 您可以通过以下方式将对象转换为json字符串:

    让我们假设您已经创建了一个名为Example.Java的模型类,并且在您的代码中创建了该对象

    Example example = new Example();
    

    现在您可以将示例对象转换为json,如下所示:

    Gson gson = new Gson();
    gson.fromJson(example , Example .class);
    

    要将json字符串转换为相应的对象,您可以使用this

    如果你还有疑问,请在下方评论

答案 1 :(得分:0)

你的课应该是这样的:

public class CustomClass{
   String type;
   List<Feature> features;

   class Feature{
      String type;
      Properties properties;
      String geometry;
   }

   class Properties{
      String fulcrum_id;
      String fulcrum_parent_id;
      String fulcrum_record_id;
      .
      .
      .
   }
}

创建一个实例,输入你想要的值,然后用Gson库将它转换为Json:

String json = new Gson().toJson(myObject)

答案 2 :(得分:0)

应用此代码,因为它将获得所需的精确输出。

JSONObject jObj = new JSONObject();

    try {
        jObj.put("type", "sample string 1");

        JSONArray jArray = new JSONArray();
        for(int i=0;i<3;i++) {

            //creating jsonobject for particular jsonarray index
            JSONObject inObj = new JSONObject();
            inObj.put("type", "sample string 1");

            //creating another jsonobject into jsonarray index
            JSONObject nestedInObj = new JSONObject();

            nestedInObj.put("fulcrum_id", "sample string 1");
            nestedInObj.put("fulcrum_parent_id", "sample string 2");
            nestedInObj.put("fulcrum_record_id", "sample string 3");
            nestedInObj.put("version", "sample string 4");
            nestedInObj.put("created_at", "sample string 5");
            nestedInObj.put("updated_at", "sample string 6");
            nestedInObj.put("created_by", "sample string 7");
            nestedInObj.put("updated_by", "sample string 8");
            nestedInObj.put("form010058", "sample string 9");
            nestedInObj.put("form010059", "sample string 10");
            nestedInObj.put("form010060", "sample string 11");
            nestedInObj.put("form010060_other", "sample string 12");

            // now putting nestedInObj into JSONobject for jsonarray index
            inObj.put("properties", nestedInObj);

            inObj.put("geometry", "sample string 2");

            // adding JSONobject to jsonarray index
            jArray.put(inObj);
        }

        //putting whole JSONarray to main jsonobjct
        jObj.put("features", jArray);

    } catch (JSONException e) {
        e.printStackTrace();
    }

    Log.e("json", jObj.toString());

如果有任何困难,请告诉我,我很乐意提供帮助。

快乐的编码!