我对Json并不陌生,我的目标是从Java
bean创建下面的Json输出。我应该如何构造Java对象?我应该将MyResult类以及User和Result作为子类吗?我可以为此使用什么Json库?
“MyResult” {
“AccountID”: “12345”,
"User" {
"Name": "blah blah",
"Email": “blah@blah.com”,
},
"Result" {
"Course": “blah”,
"Score": “10.0”
}
}
注意: 我是 EclipseLink
JAXB(MOXy)的
负责人,并且是
JAXB(JSR-222)
专家组的成员。
我应该如何构造Java对象?
下面是您的对象模型的外观。MOXy的JSON绑定利用JAXB批注将域模型映射到JSON,因此我也将它们包括在内。JAXB实现具有映射字段/属性名称的默认规则,但是由于您的文档与默认名称不同,因此必须对每个字段进行注释。
我的结果
package forum11001458;
import javax.xml.bind.annotation.*;
@XmlRootElement(name="MyResult")
public class MyResult {
@XmlElement(name="AccountID")
private String accountID;
@XmlElement(name="User")
private User user;
@XmlElement(name="Result")
private Result result;
}
用户
package forum11001458;
import javax.xml.bind.annotation.XmlElement;
public class User {
@XmlElement(name="Name")
private String name;
@XmlElement(name="Email")
private String email;
}
结果
package forum11001458;
import javax.xml.bind.annotation.XmlElement;
public class Result {
@XmlElement(name="Course")
private String course;
@XmlElement(name="Score")
private String score;
}
我可以为此使用什么Json库?
下面是如何使用MOXy进行JSON绑定的方法:
jaxb.properties
要将MOXy用作JAXB提供程序,您需要jaxb.properties
在与域模型相同的程序包中包含一个带有以下条目的名为的文件:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
演示版
请注意,MOXy的JSON绑定如何不需要任何编译时依赖性。Java SE 6中提供了所有必需的API。如果使用Java SE
5,则可以添加必需的支持API。
package forum11001458;
import java.io.File;
import javax.xml.bind.*;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(MyResult.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
unmarshaller.setProperty("eclipselink.media-type", "application/json");
File json = new File("src/forum11001458/input.json");
Object myResult = unmarshaller.unmarshal(json);
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty("eclipselink.media-type", "application/json");
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(myResult, System.out);
}
}
input.json /输出
{
"MyResult" : {
"AccountID" : "12345",
"User" : {
"Name" : "blah blah",
"Email" : "blah@blah.com"
},
"Result" : {
"Course" : "blah",
"Score" : "10.0"
}
}
}
问题内容: 我正在尝试将我的Json载入我的班级 我正在努力让GSON使用以下代码将用户详细信息加载到上述Java对象中 问题答案: JSON无效。集合不能由表示。它代表一个 对象 。集合/数组用逗号分隔的对象表示。 JSON如下所示: (请注意,我在最深层的嵌套朋友中又添加了一个朋友,以便您了解如何在集合中指定多个对象) 给定此JSON,您的包装器类应如下所示: 然后将其转换为 并吸引用户使用
问题内容: 我正在尝试反序列化以下字符串,对于Java来说我还是有些陌生,我无法在我的一生中使用它。我现在仅尝试在对象中解码两个字符串。我的JSON和Java类如下。我得到的结果变量确定。 还有我下面的java类 请原谅我缺乏描述,但是我确信代码会有所帮助。JSON已在其他应用程序中使用,因此不可更改。 谢谢! 问题答案: 这是一些不错的JSON教程,可以帮助您。 GSON JSON格式 带有源代
我有json格式,我想用JSONObject和JSONArray在java代码中创建它,但是我没有得到正确格式的输出。JSON格式如下所示。 我如何用java创建这个json对象,因为我想用这个对象创建使用NVD3的多条形图。如有任何帮助,不胜感激!
我想创建一个字符串,如下所示。 我们如何创建这个字符串使用
问题内容: 我试图从JSON数组中获取每个JSON对象。我通过HTTP发布获得此数据。 我知道我的数据是什么样的: 我的示例代码和结构如下所示: 我不确定如何遍历JSON数组并获取JSON对象,然后仅使用JSON对象。 问题答案: 试试这个作为您的结构, 您的名称不正确,顶层名称也不正确。解码为a之后,您可以遍历切片以获取每个切片
问题内容: 我有JSON对象,如下所示: 在Java中,我想解析上述json对象并将值存储在arraylist中。 我正在寻找一些代码来实现这一目标。 问题答案: 我假设你想将interestKeys存储在列表中。 使用库: