将我的类转换为JSONObject

时间:2014-04-15 08:24:47

标签: java android json class

我有一系列我班级的对象"积分"我想把它们放在一个JSONArray上,当然是强制转换为JSONObject,但是我有一个问题我无法解决,我不能把我的点[]放在JSONObject上而且我不知道怎么做。我把代码更好地解释了。

主要代码:

JSONArray jsPoints = new JSONArray();
for(int i = 0; i < points.length; i++)
{
    JSONObject js = new JSONObject(points[i]);
    jsPoints.put(js);
}

点类:

public class Point {

String _id; 
String _comment; 
String _calification; 
String _coords;
int _X;
int _Y;

public Point(String id, String comment, String calification, String coords, int x, int y)
{
    _id = id; 
    _comment = comment; 
    _calification = calification; 
    _coords = coords;
    _X = x;
    _Y = y;     
}
}

在我的班级中引入价值观:

private void createPoints()
{
    points = new Point[drawedInterestPoints.size() / 2]; 
    int j = 0;
    for(int i = 0; i < drawedInterestPoints.size() - 1; i++)
    {
        if(i % 2 == 0)
        {
            points[j] = new Point(pointType.get(i),comments.get(i),calification.get(i),GPScoords.get(i),drawedInterestPoints.get(i),drawedInterestPoints.get(i + 1));
            j++;
        }
    }
}

任何人都可以告诉我要将每个点[]放在JSONObject中然后放在JSONArray中吗?谢谢!

4 个答案:

答案 0 :(得分:0)

尝试使用GSON。这样做:

Gson gson = new Gson(); 
final MyClass myClass = gson.fromJson(jsonString, MyClass.class);

希望这会有所帮助.. :)

答案 1 :(得分:0)

您无法直接将JSONArray投射到Points

你可以做些什么,比如

  1. 将json作为字符串
  2. 使用jackson(ObjectMapper
  3. 将json反序列化为Point

答案 2 :(得分:0)

在您的代码中

JSONObject js = new JSONObject(points[i]);

毫无意义;您应该将每个points []项作为标记放在jsObject中,然后将其插入JsonArray

试试这个:

public void jsonAsStr() {

    JSONObject mJsonObj = new JSONObject();

    try {
        mJsonObj.put("tag1", true);
        mJsonObj.put("tag2", 120);
        mJsonObj.put("tag3", "Demo");

        JSONArray jsPoints = new JSONArray();
        jsPoints.put(mJsonObj);

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

}

答案 3 :(得分:0)

您可以使用gson

执行此操作
Gson gson = new Gson();
Point point = new Point("", "", "", "", 1, 2);
String json = gson.toJson(point);