我有一个任务解析Json到Java类。
我试图解析的Json片段有点像树结构。
这里的关键点是,参数值可以是字符串,也可以是参数名称/值对的另一个数组;
我想用杰克逊地图绘制器
Response response = mapper.readValue(jsonObjstring, Response.class);
这里的问题是我不知道如何在这里描述响应类,所以它可以被杰克逊自动解析。如果有可能的话。
Json:
[{
"parameterName" : "name",
"parameterValue" : "value"
}, {
"parameterName" : "apnRecord",
"parameterValue" : [{
"parameterName" : "name",
"parameterValue" : "value"
}, {
"parameterName" : "name",
"parameterValue" : "value"
}, {
"parameterName" : "name",
"parameterValue" : "value"
}, {
"parameterName" : "name",
"parameterValue" : "value"
}, {
"parameterName" : "name",
"parameterValue" : "value"
}, {
"parameterName" : "name",
"parameterValue" : "value"
}]
}]
package test;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Test {
public static void main(String[] args) {
String readJsonAsString = "[{\r\n \"parameterName\" : \"name\",\r\n \"parameterValue\" : \"value\"\r\n}, {\r\n \"parameterName\" : \"apnRecord\",\r\n \"parameterValue\" : [{\r\n \"parameterName\" : \"name\",\r\n \"parameterValue\" : \"value\"\r\n }, {\r\n \"parameterName\" : \"name\",\r\n \"parameterValue\" : \"value\"\r\n }, {\r\n \"parameterName\" : \"name\",\r\n \"parameterValue\" : \"value\"\r\n }, {\r\n \"parameterName\" : \"name\",\r\n \"parameterValue\" : \"value\"\r\n }, {\r\n \"parameterName\" : \"name\",\r\n \"parameterValue\" : \"value\"\r\n }, {\r\n \"parameterName\" : \"name\",\r\n \"parameterValue\" : \"value\"\r\n }]\r\n}]";
try {
ObjectMapper mapper = new ObjectMapper();
JsonNode jsonNodes = mapper.readTree(readJsonAsString.toString());
for (JsonNode jsonNode : jsonNodes) {
System.out.println(jsonNode.get("parameterName"));
}
} catch (JsonProcessingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
首先需要将json转换为字符串格式,然后通过ObjectMapper需要将其转换为树形结构。
为此,您需要使用3罐:jackson-annotations-2.3.5.jarjackson-core-2.3.5.jarjackson-databind-2.3.5.jar
创建POJO响应。包含字段和getter/setter的java类创建一个标准构造函数和一个包含字段的构造函数,以及一个toString方法()。我将向您展示一个带有注释的示例
定义类,如:
@JsonAutoDetect
@JsonSerialize
public class Response implements Serializable
然后您的字段
@JsonProperty
private String parameterName;
最后你的建造者像这样
@JsonCreator
public Response(@JsonProperty("parameterName") String parameterName) {
this.parameterName = parameterName;
}
您可以尝试这个在线json-to-java pojo映射器,它可以生成所需的结果,而且我可以多次使用它。
http://pojo.sodhanalibrary.com/
试试看,如果您遇到更多困难,请提供您收到的完整json,我们可以解决其他问题。
我从accuweather获得了以下带有json的代码 我尝试通过Jackson将此对象解析为POJO 我有json中指定的所有模型,如、数组、,由组成(在json中命名为最小值和最大值)等,它们都有私有字段和公共构造函数、getter和setter。但是我没有一些字段,因为我想省略它们(Day、night、EpochDate、Source)。 当我运行程序时,我得到了错误 com.fasterx
XML响应 我为电影和图像创建了pojo类。 Film.java 形象JAVA 请帮助我是新来的,我应该使用JAXB。 解决方案: 我已经加了 在Image的getter方法中,我添加了@xmlement(name=“Image”)。 在Image类中,我添加了一个注释@XmlRootElement(name=“Image”),它提供了我想要的东西。
Milo Yip 2016/11/15 本文是《从零开始的 JSON 库教程》的第六个单元解答篇。解答代码位于 json-tutorial/tutorial06_answer。 1. 重构 lept_parse_string() 这个「提取方法」重构练习很简单,只需要把原来调用 lept_set_string 的地方,改为写入参数变量。因此,原来的 lept_parse_string() 和 答案
我有这样一个XML字符串: 当我试图将字符串读入这样的对象时 我得到以下错误: 我在类中使用@JsonProperty是因为@XmlElement还有其他问题。如果我在ResultModel类中排除字段QueryResults,那么字符串的解析工作正常,看起来是正确的。我做错了什么?我对Java中XML字符串的解析非常陌生,所以我希望有一些简单的方法来解决这个问题。。。
问题内容: 我无法理解如何使用Visual .NET将JSON字符串解析为c#对象。任务很简单,但是我仍然迷路…我得到了这个字符串: 这是我尝试进行消毒的代码: 我不知道在’<’和’>’之间放置什么,从网上阅读的内容中,我必须为其创建一个新的类。另外,如何获得输出?一个例子会有所帮助! 问题答案: 创建一个可以反序列化您的JSON的新类,例如:
Milo Yip 2016/10/29 本文是《从零开始的 JSON 库教程》的第六个单元。代码位于 json-tutorial/tutorial06。 本单元内容: JSON 对象 数据结构 重构字符串解析 实现 总结与练习 1. JSON 对象 此单元是本教程最后一个关于 JSON 解析器的部分。JSON 对象和 JSON 数组非常相似,区别包括 JSON 对象以花括号 {}(U+007B、U