Json基础教程
Jackson教程
- Jackson介绍
- Jackson入门程序
- Jackson ObjectMapper实现JSON实际的读/写
- Jackson对象序列化/反系列化
- Jackson数据绑定
- Jackson JSON映射到任何Java对象
- Jackson使用具体的Java对象和类型强制转换到JSON使用
- Jackson树模型JsonNode
- Jackson流式API JsonGenerator、JsonParser
Gson教程
开源项目
知识点
相关文章
更多最近更新
更多Jackson入门程序
2019-05-09 23:17|来源: 网路
再进入学习jackson库的细节之前,让我们来看看应用程序操作功能。在这个例子中,我们创建一个Student类。将创建一个JSON字符串学生的详细信息,并将其反序列化到学生的对象,然后将其序列化到JSON字符串。
创建一个名为JacksonTester在Java类文件 C:\>Jackson_WORKSPACE.
文件: JacksonTester.java
import java.io.IOException; import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.SerializationConfig; public class JacksonTester { public static void main(String args[]){ ObjectMapper mapper = new ObjectMapper(); String jsonString = "{\"name\":\"Mahesh\", \"age\":21}"; //map json to student try { Student student = mapper.readValue(jsonString, Student.class); System.out.println(student); mapper.enable(SerializationConfig.Feature.INDENT_OUTPUT); jsonString = mapper.writeValueAsString(student); System.out.println(jsonString); } catch (JsonParseException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } class Student { private String name; private int age; public Student(){} public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String toString(){ return "Student [ name: "+name+", age: "+ age+ " ]"; } }
验证结果
使用javac编译如下类:
C:\Jackson_WORKSPACE>javac JacksonTester.java
现在运行jacksonTester看到的结果:
C:\Jackson_WORKSPACE>java JacksonTester
验证输出
Student [ name: Mahesh, age: 21 ] { "name" : "Mahesh", "age" : 21 }
步骤 - 需要记住
以下是这里要考虑的重要步骤。
第1步:创建ObjectMapper对象。
创建ObjectMapper对象。它是一个可重复使用的对象。
ObjectMapper mapper = new ObjectMapper();
第2步:反序列化JSON到对象。
从JSON对象使用readValue()方法来获取。通过JSON字符串和对象类型作为参数JSON字符串/来源。
//Object to JSON Conversion Student student = mapper.readValue(jsonString, Student.class);
第3步:序列化对象到JSON。
使用writeValueAsString()方法来获取对象的JSON字符串表示。
//Object to JSON Conversion jsonString = mapper.writeValueAsString(student);
相关问答
更多-
电脑程序编辑怎么入门[2022-03-03]
-
入门的java游戏小程序[2022-02-11]
猜数字 import java.util.Scanner; public class Guess{ public static void main(String[] args){ int x = (int)(Math.random()*10);//从0~9中随机生成一个数 Scanner in = new Scanner(System.in); int input = in.nextInt();//玩家输入 if(input == x) System.out.println("correct!");//答对 ... -
JAVA程序员怎么入门[2022-08-01]
从hello world开始 建议不要学JAVA的GUI 学习JAVA 的WEB开发,即 J2EE J2EE最主要就是hibernate,spring,struts2这几个架构,也叫SSH 搞懂这几个架构,用他们搭建一个网站,熟练一下,就可以去找工作了。 另外JAVA最重要的思想是设计模式,优雅的设计比高效率的设计更加重要。反射,代理,工厂等模式,这些都要了解清楚。 最后,JAVA跟数据库是密不可分的,你还要了解下数据库。 -
WebSphere Liberty将使用您使用JAX-RS 2.0指定的Jackson版本,以及一些注意事项(我们正在追逐)。 答)您仍然需要明确指定JSON提供者。 B)您可能会看到一个16.0.0.2的NPE,如下所述: 注册者JacksonJsonProvider在Websphere Liberty配置文件中 。 如上所述,我们已经解决了这个问题 最新的测试版不会显示此行为,这表明下次运行时更新不会。 示例: https : //github.com/gameontext/gameon-mediato ...
-
使用ContextResolver如本文所示。 使用@Provider注释,应该从扫描中拾取@Provider (假设您正在使用某种扫描;包扫描或类路径扫描) @Provider public class ObjectMapperContextResolver implements ContextResolver
{ final ObjectMapper mapper = new ObjectMapper(); public ObjectMapperConte ... -
如何让Jackson序列化程序在所需的null属性上失败(How to have the Jackson serializer fail on required attributes that are null)[2024-03-02]
我没有看到任何注释或配置选项。 您可以在序列化之前使用hibernate-validator验证对象。 由于您不想添加自定义注释,因此可以通过在序列化之前验证对象来修改默认序列化程序。 首先创建一个自定义序列化程序,它将另一个作为构造函数参数,并使用hibernate验证器来验证对象并抛出异常。 class ValidatingSerializer extends JsonSerializer -
使用Jackson的@JsonTypeInfo和自定义序列化程序(Using Jackson's @JsonTypeInfo with a custom serializer)[2023-03-13]
我找到了解决办法,或者这可能是合适的解决方案。 无论哪种方式,它似乎都有效。 如果有更好的方法,请告诉我。 (我觉得应该有) 我定义了一个实现Map的内部类,并将该类的实例提供给JsonGenerator.writeObject()而不是为它提供Map 。 一旦通用声明被“隐藏”,Jackson似乎能够解析键和值类型,并为创建的MapSerializer提供非null的MapSerializer ,从而产生所需的JSON输出。 对测试源代码的以下添加/修改生成所需的输出。 p ...