我想将以下JSON数据发送到服务器并读取android和server中的响应。以下是Json数据。
x和y是图像的坐标。
lstCoordinate:[
{
x=xValue
y=yValue
img_id=image
}
{
x=xValue
y=yValue
img_id=image
}
]
答案 0 :(得分:0)
建议是制作一个具体的Java对象来表示你app中的数据。您也必须(推荐)使用库作为okHttp或者改进以在您的应用程序中处理请求,因为随着您的应用程序的增长,使用对象将更加有条理,而不是直接使用json。
例:
具体类别
public class Coordinate {
private String X;
private String Y;
private int ImageID;
public Coordinate(String X, String Y, int ImageID) {
this.X = X;
this.Y = Y;
this.ImageID = ImageID;
}
public String GetX() {
return this.X;
}
public String GetY() {
return this.Y;
}
public int GetImageID() {
return this.ImageID;
}
public void SetX(String X) {
this.X = X;
}
public void SetY(String Y) {
this.Y = Y;
}
public void GetImageID(int ImageID) {
this.ImageID = ImageID;
}
}
转换
Gson gson = new Gson();
List<Coordinate> coordinates = new ArrayList<>();
coordinates.add(new Coordinate("-300511237", "-512133938", 1));
coordinates.add(new Coordinate("28614723", "77210005", 2));
String json = gson.toJson(coordinates);
请求使用okHttp
public static final MediaType JSON
= MediaType.parse("application/json; charset=utf-8");
OkHttpClient client = new OkHttpClient();
String post(String url, String json) throws IOException {
RequestBody body = RequestBody.create(JSON, json);
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
Response response = client.newCall(request).execute();
return response.body().string();