我有一个以 json 形式返回数据的 Web 服务。但返回的数据实际上不是 json 格式,因为对于像 ids 这样的一些键值,它给出了没有任何引号的数字值,因为当我创建一个对象时它会抛出一个异常,所以我的要求很简单,我如何才能将引号括起来没有引号的数字。
{"name":"pragnani","job":"android developer","experience":"fresher","age":22,"id":10}
这里的 ID 和年龄没有引号,我想用引号替换它们。不要简单地发布子字符串之类的东西,因为它不会工作,因为 Web 服务会返回大量数据。我正在使用一个单独的类从不同的网络服务中检索数据。所以请帮助我....
编辑:这是数据
"[{\"PracticeID\":36,\"PracticeName\":\"Dr. John Doe\",\"DBServerName\":\"DBSERVER8\"}]"
这是检索数据的方法
@Override
protected String doInBackground(String... aurl) {
String results="";
try {
HttpClient httpClient = new DefaultHttpClient();
HttpPost post = new HttpPost(aurl[0]);
post.setHeader("content-type", "application/json");
StringEntity entity = new StringEntity(dto.toString());
post.setEntity(entity);
HttpResponse resp = httpClient.execute(post);
String respStr = EntityUtils.toString(resp.getEntity());
results=respStr.trim();
results=results.replace("]\"", "]").replace("}", "\"}").replace("\":", "\":\"").replace("}\",","},");
results=results.replace("\"[", "[");
results=results.replace("\\\"", "\"");
results=results.replace("\"\"", "\"");
String[] arr=results.split("\\{");
if(arr.length<=2)
{
results=results.substring(results.indexOf("[")+1,results.indexOf("]"));
}
else
{
results=results.replace("[", "{\"result\":[").replace("]", "]}");
}
} catch (Exception e) {
e.printStackTrace();
}
return results;
}
如何将其转换为 json 字符串....