gpt4 book ai didi

java - 玩Java框架,如何存储通过Post请求来自单个JSON的JSON对象?

转载 作者:行者123 更新时间:2023-11-30 07:10:33 24 4
gpt4 key购买 nike

我试图让一个简单的帖子 Controller 读取和操作来自带有帖子请求的 JSON 的内容。但我只了解如何从第一个对象读取一个属性,而 JSON 包含它们的列表。不幸的是,对于像我这样的弱者来说,官方文档并不是最好的,所以考虑到我必须对来自 JSON 的对象列表进行排序,是否可以获得具有核心功能的简单代码?

我的 Json:

[
{
"id": 2,
"name": "James",
"starttime": "2011-04-19T06:16:56-07:00"
},
{
"id": 1,
"name": "Jack",
"starttime": "2014-11-07T21:12:11-07:00"
}
]

我的类(class):

package controllers;

import com.fasterxml.jackson.databind.JsonNode;
import play.mvc.BodyParser;
import play.mvc.Controller;
import play.mvc.Result;

public class CustomersController extends Controller {
@BodyParser.Of(BodyParser.Json.class)
public Result index() {
JsonNode json = request().body().asJson();
String name = json.findPath("name").textValue();
if(name == null) {
return badRequest("Missing parameter [name]");
} else {
return ok("Hello " + name);
}
}
}

以及我在 Restful 客户端上获得的响应:

Hello James!

那么,如何读取所有对象呢?如何使用对象映射器或 Jackson 功能?

最佳答案

Json 对象映射(在底层使用 Jackson)是 Playframework 的一部分:https://www.playframework.com/documentation/2.5.x/JavaJsonActions#Mapping-Java-objects-to-JSON

public class Foo {
public int id;
public String name;
public Date date;
}

public class CustomersController extends Controller {
@BodyParser.Of(BodyParser.Json.class)
public Result index() {
JsonNode json = request().body().asJson();
Foo foo1 = Json.fromJson(json, Foo.class);
return ok("Hello " + foo1.name);
}
}

关于java - 玩Java框架,如何存储通过Post请求来自单个JSON的JSON对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39306039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com