功能要求 C#做http请求 ,后台 struts+json 返回json格式数据, 大概代码是这样的
后台java
publicString jo ;publicString getNumpsQty(){//***JSONObject obj=newJSONObject();
JSONArray ja=JSONArray.fromObject(onv);
obj.put("count", row);
obj.put("root", ja);
setJo(obj.toString());
System.out.println(jo);
}catch(Exception e){
e.printStackTrace();
}returnSUCCESS;
}
struts 配置
jo
接收到json 的格式
"{\"count\":6,\"root\":[{\"numPs\":\"T10140019\",\"qty\":\"500000\"},{\"numPs\":\"T10140020\",\"qty\":\"200000\"}]}"
很明显格式有问题 多了个斜杠,无法解析
去google一下发现大神们的解释:
不能用String格式返回,String格式本身会加"" , 请求的json会经过两次序列化导致加了转义字符\
直接返回 JSONObject 就可以,
public JSONObject jo ;
public String getNumpsQty(){
JSONObject obj=new JSONObject();
try{
//***
List onv=new ArrayList();
JSONArray ja =JSONArray.fromObject(onv);
obj.put("count", row);
obj.put("root", ja);
setJo(obj);
System.out.println(jo);
}catch(Exception e){
e.printStackTrace();
}
return SUCCESS;
}
public JSONObject getJo() {
return jo;
}
public void setJo(JSONObject jo) {
this.jo = jo;
}
原文:http://www.cnblogs.com/Marvellous/p/3987627.html