2

我在 asp.net 中编写了一个 Web 服务,并使用JSON webservice在我的 android 应用程序中调用它。这是我从 android 调用 web 服务的代码

httpPost request = new HttpPost(url);
request.setHeader("Content-Type","application/json");
request.setEntity(new ByteArrayEntity(json.toString().getBytes("UTF8")));
HttpResponse response = client.execute(request);
String jsonResponse = EntityUtils.toString(response.getEntity());
JSONObject jobj=new JSONObject(jsonResponse);
JSONArray jsonArray=jobj.getJSONArray("d");
result=(String) jobj.getString("d")

我需要从结果中获取每个值。这怎么可能?我的网络服务结果是: {"d":"{\"Password\":33,\"Userid\":\"343\",\"Username\":fgfg}"}

4

2 回答 2

1

只需删除以下行

JSONArray jsonArray=jobj.getJSONArray("d");

因为您的响应中没有任何JSONArray内容,所以 d 是唯一的对象,然后剩下的所有值都在字符串中,因为所有值都在 double cotes("")...

首先,形成你的json,如下所示:

{"d":{\"Password\":33,\"Userid\":\"343\",\"Username\":fgfg}}

所以,你可以得到,

JSONObject jobj=new JSONObject(jsonResponse);
JSONObject jsonObj=jobj.getJSONObject("d");

现在您可以获取 Username 的值,例如:

String Username = jsonObj.getString("Username");

同样,您也可以获得其他值..

于 2013-09-07T06:57:42.283 回答
0

做就是了

resultPassword = jsonArray.getString("Password");

那应该行得通。显然,为您要获取的数据的每个 ID 更改“密码”。

于 2013-09-07T06:41:39.623 回答