如何在Android中为此格式生成JSON Stringer

时间:2016-06-18 07:23:11

标签: java android json

我需要以这种格式将数据发送到数据库 -

vm = new JSONStringer().object().key("param1").value("value1")
                  .object().key("param2").value("value2")
                    .key("param3").object()
                    .key("username").value("admin")
                    .key("password").value("123")
                    .endObject().endObject().endObject();

如何使用JSONStringer生成它?

我试过了 -

select * from tableName
         where tableName.field_type='22' 
        and 
        tableName.field_id 
        NOT IN(select aField_id from TableName  where status !='Active')

但是我收到了这个错误 -

  

org.json.JSONException:嵌套问题在   org.json.JSONStringer.beforeValue(JSONStringer.java:415)

3 个答案:

答案 0 :(得分:2)

JSONObject object1 = new JSONObject();

object1.put("param1", "value1");
object1.put("param2", "param2");

JSONObject innerObject1 = new JSONObject();
innerObject1.put("username", "admin");
innerObject1.put("password", "123");

object1.put("param3",innerObject1);

String jsonStr = object1.toString();

理想情况下,可以应用JSON解析的反向来创建json字符串对象,以便将相同的内容发送到Server / DB

答案 1 :(得分:1)

试试这个

  try {
        JSONObject object=new JSONObject();
        object.put("param1","value1");
        object.put("param2","value2");
        JSONObject param3=new JSONObject();
        paraam3.put("username","admin");
        paraam3.put("password","123");
        object.put("param3",param3);
    } catch (JSONException e) {
        e.printStackTrace();
    }

答案 2 :(得分:1)

您可以创建与您的JSON文件相同的模型,并且可以使用Google支持的 gson 库进行JSON解析。该库非常灵活,易于使用,然后使用传统的JSON解析方法。

模型文件

public class Response {
public String param1;
public String param2;
public Param3 param3;
public Response(String param1, String param2) {
    this.param1 = param1;
    this.param2 = param2;
}
      public class Param3 {
            public String username;
            public String password;

    public Param3(String username, String password) {
        this.username = username;
        this.password = password;
    }
      }
}

在您插入数据的文件中

Response res = new Response("value1", "value2", new Param3("admin","123"));
String dbResult = new Gson.toJson(res);