java - 使用Gson在java中解析JSON

标签 java json

我正在尝试运行一个简单的 HTTP 服务器,我将向该服务器发送一个请求,其中包含正文中的 JSON 字符串,并且我需要从中提取数据。我是 Java 新手,很难做到这一点。我在网上搜索过,大多数示例都不适合我,所以一定是我做错了什么。

public class shareManagerServer {

    public static void main(String[] args) throws IOException {
        HttpServer server = HttpServer.create(new InetSocketAddress(8500), 0);
        HttpContext context = server.createContext("/shareWithUser");
        context.setHandler(shareManagerServer::handleshareWithUserRequest);
        server.start();
    }

    private static void handleshareWithUserRequest(HttpExchange exchange) throws IOException {
        if (exchange.getRequestMethod().equalsIgnoreCase("POST")) {
            Headers requestHeaders = exchange.getRequestHeaders();

            // Request body
            String body = utils.readString(exchange.getRequestBody());
    }
    }
}

基于此,我如何将其获取到可以访问 JSON 信息的对象?为了测试我发送这个 curl :

curl -X POST -d "{'age':26,'email':'norman@futurestud.io','isDeveloper':true,'name':'Norman'}" localhost:8500/shareWithUser

编辑:

来 self 的实用程序:

public class utils {
    public static String readString(InputStream inputStream) throws IOException {

        ByteArrayOutputStream into = new ByteArrayOutputStream();
        byte[] buf = new byte[4096];
        for (int n; 0 < (n = inputStream.read(buf));) {
            into.write(buf, 0, n);
        }
        into.close();
        return new String(into.toByteArray(), "UTF-8"); // Or whatever encoding
    }
}

最佳答案

首先,您可以创建具有所有属性的类

public class Person {

  private int age;
  private String email;
  private boolean isDeveloper;
  private String name;

  //getters and setters

  }

现在使用 Gson 可以很好地实现字符串转发

String body = utils.readString(exchange.getRequestBody());

Gson gson = new Gson();

Person person = gson.fromJson(body, Person.class);

关于java - 使用Gson在java中解析JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58045115/

相关文章:

java - Jackson 的 Json 字符串到 java 对象映射失败

json - 如何合并两个 ARM 模板 JSON 参数文件并覆盖重复参数?

Javafx TextArea 不可编辑的行

javascript - 无法从 get 请求中获取对象 Node.js、Express

用于从移动应用程序的 mysql 服务器获取数据的 PHP 代码

java - 在 UIMA 中获取 JSON 格式的输出

java - "NullPointerException"当许多引用访问我的方法时

java - Java 中 AWT 中的拖放出现奇怪错误

用于图形的 Java 库

java - 在列表中流式传输不同的数组元素