我从Web服务http get请求收到了一个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 :(得分: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++;
}