gpt4 book ai didi

java - 改造 Android 应用程序从 Node.js 服务器获取 JSON

转载 作者:行者123 更新时间:2023-11-30 11:17:07 24 4
gpt4 key购买 nike

我解决了这个问题。我在服务器中发送纯文本。将行更改为:

response.writeHead(200, {'Content-Type': 'application/json'});

快速提问。我的 friend 建议查看 Retrofit,而不是将我的 ASync 任务用于我的 REST android 应用程序。由于我是系统新手,所以我遇到了一个小问题。服务器使用 Node.js 运行,通过 .stringify() 发送 JSON 对象,因此当我检索一个对象时,它是一个字符串而不是 JSON,我无法将它转换为我的适当对象列表。我猜错误是由于转换异常引起的,因为它正在发送一个字符串,因为我得到了异常:

com.google.gson.JsonSyntaxException

任何帮助都会很棒。这是我认为合适的代码。

Android 客户端代码示例如下:

private void requestData() {
RestAdapter adapter = new RestAdapter.Builder().setEndpoint(ENDPOINT).build();
UnitAPI unit_api = adapter.create(UnitAPI.class);

unit_api.getUnits(new Callback<List<Unit>>() {

@Override
public void success(List<Unit> t, Response response) {
units = t;
updateDisplay();
}

@Override
public void failure(RetrofitError error) {
Log.d("Failure UnitGet()", error.getMessage());

}
});

}

Android 单元类:

public class Unit {

private String ID;
private long bearing;
private long lat;
private long lng;
private String type;

public String getID() {
return ID;
}
public void setID(String ID){
this.ID = ID;
}
public long getBearing() {
return bearing;
}
public void setBearing(long bearing){
this.bearing = bearing;
}
public void setLat(long lat){
this.lat = lat;
}
public long getLat(){
return lat;
}
public void setLng(long lng){
this.lng = lng;
}
public long getLng(){
return lng;
}
public void setType(String type){
this.type = type;
}
public String getType(){
return type;
}
}

服务器通过命令发送.json文件:

if (method == "GET") {                                            
response.write(JSON.stringify(unitsJSON));
}

关于如何将它从客户端的字符串或服务器端的 json 对象转换为单位列表有什么想法吗?

谢谢!

最佳答案

我解决了这个问题。我在服务器中发送纯文本。将行更改为:

response.writeHead(200, {'Content-Type': 'application/json'});

关于java - 改造 Android 应用程序从 Node.js 服务器获取 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24539920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com