jsonの形式でデータを返すWebサービスがあります。しかし、返されるデータは実際にはjson形式ではありません。これは、idsなどの一部のキー値については、引用符なしで数値の値を提供するためです。これは、オブジェクトを作成するときに例外がスローされるため、要件は単純です。引用符を囲むにはどうすればよいですか。引用符のない数字。
{"name":"pragnani","job":"android developer","experience":"fresher","age":22,"id":10}
ここでは、IDと年齢は引用符で囲まれていません。引用符で置き換えたいと思います。Webサービスは大量のデータを返すため、サブストリングのようなものを単純に投稿しないでください。そして、私は1つの別個のクラスを使用して、さまざまな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文字列に変換する方法...