动态JSON问题

时间:2016-10-12 07:01:50

标签: java json

我的JSON结构将根据请求而有所不同。但每个元素内的内容保持不变。例如:

JSON1:

{
   "h1": {
        "s1":"s2"
   },
   "c1": {
      "t1:""t2"
   }
}

JSON2:

{
   "h1": {
        "s1":"s2"
   },
   "c2": {
      "x1:""x2"
   }
}

在上面的例子中,h1,c1和c2中的元素是常量。请告诉我如何将JSON转换为JAVA对象

关心
Udhaya

4 个答案:

答案 0 :(得分:1)

import org.json.JSONObject; 你可以简单地在你自动处理的JSONObject构造函数中传递你的数据,你需要抛出可能在转换过程中发生的JSONException数据格式不正确

String data = "{'h1':{'s1':'s2'},'c1':{'t1:''t2'}}";
  JSONObject jsnobject = new JSONObject(data);

答案 1 :(得分:0)

首先您需要了解Json Structure导致上述格式不正确的访问this

this

您可以使用Google Gson或Json解析结果json String。

答案 2 :(得分:0)

“t1:”“t2”json格式不正确

使用

"t1":"t2"  

而不是

 "t1:""t2" 

并且还使用了

"x1": "x2"

而不是

 "x1:""X2"
  

采用java的代码

 try {
            JSONObject jsonObject = new JSONObject(response);

            JSONObject jsonsubObject = jsonObject.getJSONObject("h1");

            String s1 = jsonsubObject.getString("s2");


            JSONObject jsonsubObject1 = jsonObject.getJSONObject("c1");
            String t1 = jsonsubObject1 .getString("t2");
          }
            catch (JSONException e) {
              e.printStackTrace();
            }

答案 3 :(得分:0)

使用Google Gson:

Gson gson = new Gson();
ClassName object;
try {
    object = gson.fromJson(json, ClassName.class);
} catch (com.google.gson.JsonSyntaxException ex) {
    //the json wasn't valid json
}

String validJson = gson.toJson(obj);  //obj is an instance of any class

json必须是有效的JSON String