首页 新闻 搜索 专区 学院

急啊,SOS,从webservice读取json解析不出来

0
[已解决问题] 解决于 2012-02-09 19:57
 1             String url = "http://www.queue-queue.com.sg/AccountInfo.asmx/retrieve_account";
2 HttpGet getRequest = new HttpGet(url);
3 DefaultHttpClient httpClient = new DefaultHttpClient();
4 HttpResponse getResponse = httpClient.execute(getRequest);
5 final int statusCode = getResponse.getStatusLine().getStatusCode();
6 if (statusCode != HttpStatus.SC_OK) {
7 Log.w(getClass().getSimpleName(), "Error " + statusCode + " for URL " + url);
8 return;
9 }
10 String result=EntityUtils.toString( getResponse.getEntity());
11 Log.i("result", result);
12 JSONObject jsonObject = new JSONObject(result);

断点debug下result的结果是

 <string xmlns="http://tempuri.org/">
{"account_id":1,"first_name":"zzz","last_name":"xxx","date_of_birth":"2012-1-1","account_gender":"M","phone_country_id":1,"account_phone":"1241343","account_login":"123@gmail.com"}
</string>

我加了这段代码后,XML标签去掉了,但是result值多了""和很多\

request.addHeader("Content-Type", "application/json; charset=utf-8");

各位有谁做过这方面项目的,请指点下,怎么才去的掉XML标签

codebird的主页 codebird | 初学一级 | 园豆:154
提问于:2012-02-06 17:19
< >
分享
最佳答案
1

""这个是json格式的正常标记,用于放置变量的

\的话是转义符,就是转义双引号的

你直接把获取的值读成一个字符串再看看,或者再用json直接反序列化

ERS | 小虾三级 |园豆:728 | 2012-02-06 17:58

我读出来的只是像这样的。

"{\"account_id\":1,\"first_name\":\"zzz\",\"last_name\":\"xxx\",\"date_of_birth\":\"2012-1-1\",\"account_gender\":\"M\",\"phone_country_id\":1,\"account_phone\":\"1241343\",\"account_login\":\"123@gmail.com\"}"

正确的应该是

{"account_id":1,"first_name":"zzz","last_name":"xxx","date_of_birth":"2012-1-1","account_gender":"M","phone_country_id":1,"account_phone":"1241343","account_login":"123@gmail.com"}"

多了"" 和\


codebird | 园豆:154 (初学一级) | 2012-02-06 18:27

@codebird: 

做这WebService,我这边是

同事直接把接口的返回值当做一个XML节点来解析,没有问题

同事传json对象到我这边,如果我用断点调试查看,也会多出“”和\

不过我直接当字符串,用json的dll反序列化,可以使用

你那里不行的话就手动的截取吧,也就多第一个和最后一个双引号

\这个符号是转义符,不然那么多双引号会错乱的,你输出到一个文件里看看

ERS | 园豆:728 (小虾三级) | 2012-02-07 09:12

@codebird: 截取引号没用,\还在。反序列化行吗? 使用gson反序列化吗?那样也太繁琐了吧。

codebird | 园豆:154 (初学一级) | 2012-02-09 17:47

@ERS: =.= 好吧,我彻底屈服了,写了一个aspx转接webservice。可以了。

codebird | 园豆:154 (初学一级) | 2012-02-09 19:57

@codebird: 

json有dll可以下载到

封装有方法对变量进行序列化和反序列化的

model也可以使用这个dll的

ERS | 园豆:728 (小虾三级) | 2012-02-10 09:05
其他回答(1)
0

用jquery  $(result).find("string").text();

要是想用javascript解析的话 可以用eval

eval($(result).find("string").text())

这样就可以成json对象了

谦行 | 园豆:473 (菜鸟二级) | 2012-02-06 22:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册