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

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

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

快速的问题。 我的朋友build议寻找改造,而不是我的REST android应用程序使用我的ASync任务。 自从我对这个系统不熟悉的时候,我遇到了一个小问题。 服务器运行使用Node.js通过.stringify()发送JSON对象,所以当我检索一个对象时,它是一个string,而不是一个JSON,我不能将其转换为适当对象的List。 我猜这个错误是由于一个强制exception,因为它发送一个string,因为我得到的exception:

 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)); } 

任何想法如何我可以将其转换为从客户端的string或服务器端的JSON对象的单位列表?

谢谢!

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

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