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) {
        }
    }
}
1
  • Use Jackson or Gson or json.org library. Commented Aug 28, 2013 at 2:22

1 Answer 1

1

For that, you need to parse your flux json, here the code.

 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++;
}        
Sign up to request clarification or add additional context in comments.

3 Comments

Thanks so much!! Could you tell me how to print the data in the JsonObject? From what I understand JsonObjects are arrays.
It ended up not actually printing anything.
Use System.out.println(dataReports.toString());

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.