使用Gson在java中解析JSON
我正在尝试运行一个简单的HTTP服务器,我将向它发送一个请求,其中包含JSON字符串,我需要从中提取数据。我是Java新手,在这方面有困难。我在网上搜索过,大多数例子对我都不适用,所以我肯定是做错了什么使用Gson在java中解析JSON,java,json,Java,Json,我正在尝试运行一个简单的HTTP服务器,我将向它发送一个请求,其中包含JSON字符串,我需要从中提取数据。我是Java新手,在这方面有困难。我在网上搜索过,大多数例子对我都不适用,所以我肯定是做错了什么 public class shareManagerServer { public static void main(String[] args) throws IOException { HttpServer server = HttpServer.create(new
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信息的对象?要测试im发送此卷曲,请执行以下操作:
curl -X POST -d "{'age':26,'email':'norman@futurestud.io','isDeveloper':true,'name':'Norman'}" localhost:8500/shareWithUser
编辑:
从我的utils:
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
}
}
公共类utils{
公共静态字符串readString(InputStream InputStream)引发IOException{
ByteArrayOutputStream into=新建ByteArrayOutputStream();
字节[]buf=新字节[4096];
对于(int n;0<(n=inputStream.read(buf));){
写入(buf,0,n);
}
into.close();
返回新字符串(进入.toByteArray(),“UTF-8”);//或任何编码
}
}
首先,您可以创建具有所有属性的类
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);
首先,您可以创建具有所有属性的类
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);
请发布您尝试过的内容以及您遇到的问题。您能否显示更多代码这是什么
utils
,以及您使用哪个库来反序列化json?新建JSONObject(body)如何?标题太差了。重写以总结您的具体技术问题。@Deadpool添加了它!请发布您尝试过的内容以及您遇到的问题。您能否显示更多代码这是什么utils
,以及您使用哪个库来反序列化json?新建JSONObject(body)如何?标题太差了。重写以总结您的具体技术问题。@Deadpool添加了它!啊,好吧,我知道我要在这里做什么了!谢谢我是Java新手!啊,好吧,我知道我要在这里做什么了!谢谢我是Java新手!