2013-08-28 4 views
0

У меня есть строка Json, полученная от веб-службы http get request. Я хотел бы повернуть строку, которую я сформировал в JsonObject.Преобразование строки Json в JsonObject

На вопрос ответ был отменен. См. Ответ ниже.

import java.lang.reflect.Method; 
import java.lang.reflect.Type; 
import java.net.URL; 
import java.net.URLConnection; 
import java.net.HttpURLConnection; 
import java.util.List; 
import java.io.*; 
import java.util.*; 

import com.google.gson.Gson; 
import com.google.gson.GsonBuilder; 
import com.google.gson.JsonObject; 
import com.google.gson.JsonParser; 

public class RetrieveData { 

    public static String httpGet(String urlStr) throws IOException { 
     URL url = new URL(urlStr); 
     HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 

     if (conn.getResponseCode() != 200) { 
      throw new IOException(conn.getResponseMessage()); 
     } 

     // Buffer the result into a string 
     BufferedReader rd = new BufferedReader(new InputStreamReader(
       conn.getInputStream())); 
     StringBuilder sb = new StringBuilder(); 
     String line; 
     while ((line = rd.readLine()) != null) { 
      sb.append(line); 
     } 
     rd.close(); 

     conn.disconnect(); 
     return sb.toString(); 
    } 

    public static void main(String[] args) { 
     try { 
      String jsonString = (httpGet("http://kinseyreporter.org/API/list/reports/?tag=male%20victim&from=2012-06-02")); 
      JsonObject obj = new JsonObject(); 

      Gson gson = new Gson(); 
      System.out.println(jsonString); 
      List<String> list = new ArrayList<String>(); 
      gson.fromJson(jsonString, (Type) list); 
      String json = gson.toJson(jsonString); 
      System.out.println(json); 
     } catch (Exception E) { 
     } 
    } 
} 
+0

Использование библиотеки Jackson или Gson или json.org. –

ответ

1

Для этого вам необходимо проанализировать поток flux json, здесь код.

JsonObject root = (JsonObject)new JsonParser().parse(jsonString); 

int i=0; 
JsonObject dataReports 

//get and print each object of reports 
while(root.getAsJsonObject().get("reports").getAsJsonArray().size()>i && (dataReports=root.getAsJsonObject().get("reports").getAsJsonArray().get(i).getAsJsonObject())!=null){ 

    System.out.println(dataReports.toString()); 
    i++; 
}   
+0

Большое спасибо! Не могли бы вы рассказать мне, как печатать данные в JsonObject? Из того, что я понимаю, JsonObjects являются массивами. –

+0

Я отредактировал сообщение, я не тестировал, но он должен работать! – Rollyng

+0

На самом деле это ничего не печатало. –

Смежные вопросы