java - 将 Json 字符串转换为 JsonObject

标签 java json gson

我有一个从 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) {
        }
    }
}

最佳答案

为此,您需要解析您的 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++;
}        

关于java - 将 Json 字符串转换为 JsonObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18478383/

相关文章:

java - 如何使用嵌入式 jetty 设置端口和线程池,v 9.1.0

java - Apache 服务器的 Websocket 返回 200 而不是 101

java - QuickFIX/J 如何禁用自动登录响应

java - Jackson 和 Gson 中使用 json 路径的地址元素

java - 如何在 kotlin 中将 map 转换为 Json 字符串?

java - 根据行和列和恢复0-1矩阵

javascript - 将使用 axios 获取的 json 数据拆分为可重定向到页面的可点击列表项

SQL Server 将查询输出为 UTF8 而不是 UTF16

jquery - 使用 jQuery 显示 ColdFusion JSON 响应

java - 传递泛型类型的问题