-1

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文字列に変換する方法...

4

1 に答える 1

1

JSONは、その構造に数値を含めることができます(つまり、引用符で囲まれていない数値)。それらは、intergersfloatまたはJavaScriptが認識するその他の数値タイプにすることができます。

許可されるタイプ:オブジェクト、配列、数値、文字列、ブール値、null。

通常のJavaScriptとは対照的に、すべてのオブジェクトキーは引用符で囲む必要があります。それ以外にも、自由に数値を直接使用できます。

于 2013-01-23T18:57:17.760 に答える