ObjectS的JSON是一个List <object> </object>

时间:2013-06-25 17:31:55

标签: java android json string list

我必须转换为JSon String my Object。

我有一个班级(ObjectA)

public class ObjectA {
    private int information;
    private List<ObjectB> objB;
}

这个类(JSon)尝试解决我的问题

    public class JSon extends Activity {

    private ObjectA objA;

    public JSon() { }

    Public String toJSON(Object pObject) {
            this.objA = pObject;
            String temp = "";

            JSONObject jsonObject= new JSONObject();
            try {
                jsonObject.put("information", objA.getInfo());
                for (int i=0; i<objA.getobjB().size(); i++) {
                   temp = this.objBToJSON(i);
                   jsonObject.put("objB", temp);
                }

                return jsonObject.toString();
            } catch (JSONException e) {
            e.printStackTrace();
            return "";
       }

       private String objBToJSON(int i) {
           JSONObject jsonObject= new JSONObject();
           try {
              jsonObject.put("info1", objAI.getobjB().get(i).getInfo1());
              jsonObject.put("info2", objAI.getobjB().get(i).getInfo2());

              return jsonObject.toString();
           } catch (JSONException e) {
           e.printStackTrace();
           return "";
        }
   }

     public ObjectA toOkjectA(String pString) {

       ObjectA objA = new Gson().fromJson(pString, ObjectA.class);
       return objA;
}

}

toJSON方法(在另一个类中调用,String temp = new JSon()。toJSON(objA))不能正确保存我的Obj,因为当我尝试读取它时(objA = new Gson()。fromJson( pStringJSON,Libretto.class))我有一个错误(预期BEGIN_ARRAY)。那么,我该如何解决呢?

2 个答案:

答案 0 :(得分:0)

让您的生活更轻松,并使用预定义的库来为您处理。我推荐杰克逊。 http://jackson.codehaus.org/1.0.0/javadoc/org/codehaus/jackson/map/ObjectMapper.html

答案 1 :(得分:0)

我看到你正在使用Gson。不错的选择:)

JSONObject可以处理

{
  "array": [
    {
      "key": "value1"
    },
    {
      "key": "value2"
    }
  ]
}

JSONObject无法处理

[
  {
    "key": "value1"
  },
  {
    "key": "value2"
  }
]

要解决此问题,请使用 JSONElement ,而不是使用JSONObject。它可以处理两者。