2016-06-18 34 views
3

我要以這種格式將數據發送到數據庫 -如何產生JSON斯金格的Android這種格式

{"param1":"value1", "param2":"value2", "param3": {"username": "admin", "password": "123"}} 

如何產生這種使用JSONStringer?

我想這一點 -

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(); 

但我發現了這個錯誤 -

org.json.JSONException:嵌套問題在 org.json.JSONStringer.beforeValue(JSONStringer.java :415)

回答

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字符串對象,這樣同樣可以發送到服務器數據庫

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(); 
    } 
+0

異常處理真的不應該是答案的一部分,因爲它是不相關的 – mata

1

您可以創建模型,這將是你的java文件與您JSON文件並且可以使用gson庫,它受Google支持來執行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); 
+0

你的回答是有幫助的。但需要一些代碼片段,.. – Moinkhan