我有一系列我班级的对象"积分"我想把它们放在一个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中吗?谢谢!
答案 0 :(得分:0)
尝试使用GSON
。这样做:
Gson gson = new Gson();
final MyClass myClass = gson.fromJson(jsonString, MyClass.class);
希望这会有所帮助.. :)
答案 1 :(得分:0)
您无法直接将JSONArray
投射到Points
你可以做些什么,比如
ObjectMapper
)答案 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);