-1

我有一个以 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 字符串....

4

1 回答 1

1

JSON 允许在其结构中使用数值(即不带引号的数字)。它们可以是整数浮点数或 JavaScript 可以识别的任何其他数字类型。

允许的类型:对象、数组、数值、字符串、布尔值、null。

与普通的 JavaScript 不同,所有的 Object 键都必须被引用,这是真的!除此之外,您可以随意直接使用数字。

于 2013-01-23T18:57:17.760 回答