我正在学习SpringBoot,正在做这个编码挑战。到目前为止,我已经成功地设置了控制器并完成了映射。
@RestController
@RequestMapping(path="/mydomain")
public class PaymentController {
@RequestMapping(method=RequestMethod.POST, value="/ingest")
public void ingestData(@RequestBody String data) {
System.out.println("ingest Data");
System.out.println(data);
// List<Orders>
// List<Returns>
}
@RequestMapping(method=RequestMethod.GET, value="/query")
public String queryData(@RequestBody String data) {
// look at LIST of order and return..and return something
}
}
字符串数据是JSON,它包含两种不同的类型——订单和返回。
{
"entries": {
{
type: "ORDER",
name: "order_1",
"attributes": {
"owner": "John"
}
},
{
type: "ORDER",
name: "order_2",
"attributes": {
"owner": "Mike",
"buyer": "Bob"
}
// attributes is a key/value pair Map
},
{
type: "RETURN",
name: "return_1",
"attributes": {
"user": "kelly",
"time": "null",
"inputs": [
"USD",
"EUR"
],
"outputs": [
"CAD",
"GBP"
]
}
// attributes is a key/value pair Map
},
}
}
在ingestData()中,我想解析json并创建两个列表——每个列表对应订单和返回。在过去,我处理了json映射到同一个Java类中的所有项。如何将json项解析并映射到两个不同的java类?
[jsonString]-一些json解析库-
https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html
https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html
您可能应该重新考虑一下RESTAPI的设置。最好基于类创建endpoint,而不是具有处理多个类的通用endpoint。尽管这看起来可能需要更多的工作,但它将真正帮助您生成更易于维护的代码。您现在遇到了这个问题,希望ObjectMapper从单个Json解析到不同的类,这一事实很好地表明您正朝着错误的方向前进。
堆栈上有一个很好的REST API设计最佳实践
我正在从事一个SpringMVC项目,我需要完成的任务之一是让用户在POST请求中发送一个JSON数据字符串。我知道Spring将使用Jackson对对象反序列化JSON,但如果我尝试以下方法: 我只是返回HTTP 400错误请求(“客户端发送的请求在语法上不正确”)。 如何获取客户端作为字符串发送的原始JSON?
我正在使用Betfair的API开发一个REST web应用程序,因此我需要序列化/反序列化JSON,以便发送HttpRequest并读取HttpResponse。 POM依赖项 我错在哪?
问题内容: 我有由第三方编码为固定长度数组的json’ed 元组数组: 我想使用json魔术来获取的实例列表 请帮助我放置适当的注释,以使ObjectMapper发挥作用。 我无法控制传入的格式,而我所有的google’n都以答案来回答如何将适当的json对象(而非数组)数组映射到对象列表 问题答案: 添加以下注释: 并且它应该根据需要序列化条目。 另外:然后使用它来强制执行特定顺序是最安全的,因
问题内容: 我在使用AJAX访问的Java服务器应用程序中有一个字符串。它看起来像以下内容: 当从服务器提取字符串时,是否有一种简单的方法可以将其转换为活动的JavaScript对象(或数组)?还是我必须手动拆分字符串并手动构建对象? 问题答案: 现代浏览器支持。 在不浏览器,您可以包括在库中。
有没有办法将一般对象序列化为Json并将Json反序列化为对象<如果对象是一个实体,我可以使用Jackson 2库来实现这个目的<但是如果对象是一个普通类,我该怎么做呢? 例如,我想序列化com.datastax.driver.core.querybuilder。将更新为Json并保存到DB,然后搜索并反序列化它以更新对象,最后将其用作com.datastax.driver.core.Sessio
问题内容: 如何将json格式的数据字符串转换为 匿名对象 ? 问题答案: C#4.0添加了可以使用的动态对象。看看这个。