从InputStreamReader创建一个JSONObject

Nunyet de CanCalçada

我想从URL的内容创建一个JSONObject对象,所以我从google API获取URL的内容,这就是结果:

"results" : [
      {
         "address_components" : [
            {
               "long_name" : "29",
               "short_name" : "29",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Jean",
               "short_name" : "Jean",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Toulouse",
               "short_name" : "Toulouse",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Haute-Garonne",
               "short_name" : "31",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Midi",
               "short_name" : "Midi",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "France",
               "short_name" : "FR",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "31000",
               "short_name" : "31000",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "99 Jean , 31900 Toulouse, France",
         "geometry" : {
            "location" : {
               "lat" : 43.6069496,
               "lng" : 1.4498134
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 43.6082985802915,
                  "lng" : 1.451162380291502
               },
               "southwest" : {
                  "lat" : 43.6056006197085,
                  "lng" : 1.448464419708498
               }
            }
         },
         "place_id" : "ChIJTSvW45i8rhIRu8OEgnpnZMY",
         "types" : [ "street_address" ]
      }
   ],
   "status" : "OK"
}

我想从此内容创建一个JSONObject,就像

JSONObject obj = JSONObject.fromObject(urlConnection.getInputStream());

但检查此对象的大小为0

翁贝托·雷蒙迪(Umberto Raimondi)

您需要将InputStream的内容读取为String,您不能直接以这种方式使用它。

阅读类似以下内容的InputStream:

 public static String slurp(InputStream is){
    BufferedReader br = new BufferedReader(new InputStreamReader(is));
    StringBuilder sb = new StringBuilder();
    String line;
    while ((line = br.readLine()) != null) {
        sb.append(line+"\n");
    }
    br.close();
    return sb.toString();
 }

然后使用它来获取JSONObject:

JSONObject obj = JSONObject.fromObject(slurp(urlConnection.getInputStream()));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章