0

I have a String of Json received from a web service http get request. I would like to turn the string that I have formed into a JsonObject.

The question has been answered perfectly. Please see answer below.

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) {
        }
    }
}
4

1 回答 1

1

为此,您需要解析通量 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++;
}        
于 2013-08-28T02:37:08.520 回答