1.简述json
json是一种轻量级的数据交换格式,其采用完全独立的文本语言格式,非常适合于web服务器和JavaScript进行交互,
其特性使它成为理想的数据交换语言,因此使其在web应用中很受欢迎。
2.使用jackson框架处理Json
jackson是用来处理POJO和JavaBean对象的一种工具,利用它可以很轻松的将Java对象转换成json对象,并且性能
远比json-lib,Gson等其它json框架而言要高
需要的jar包: 从jackson官网上可以看到其最新版本为2.0,为保险期间我们才用1.x版本的
下载地址:http://jackson.codehaus.org/1.7.6/jackson-all-1.7.6.jar
需求:用户从View输入参数,传递到后台,经过后台的数据处理,需要将处理的结果以Json的格式返回给客户端
(比如:用户进行登录时,输入用户名和密码,经过后台的数据处理将用户的所有信息保存在JavaBean当中,
Jackson要做的就是将JavaBean对象转换成Json对象)
首先建立数据模型JavaBean
public class User implements Serializable{
private int id;
private String name;
private String password;
private String telephone;
setXXX;
getXXX;
}
利用org.codehaus.jackson.map.ObjectMapper
import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class TestJackson {
private ObjectMapper mapper = null;
public TestJackson() {
mapper = new ObjectMapper();
}
public String PojoToJson(Object obj) {
StringWriter sw = new StringWriter();
try {
mapper.writeValue(sw, obj);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if(sw != null) {
try {
sw.flush();
sw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sw.toString();
}
@SuppressWarnings("unchecked")
public static void main(String[] args) {
TestJackson test = new TestJackson();
User user = new User();
user.setId(1);
user.setName("name");
user.setPassword("password");
user.setTelephone("1234565");
List list = new ArrayList();
list.add(1);
list.add(12);
list.add(123);
list.add(123);
Map map = new HashMap();
Map map1 = new HashMap();
map1.put("city", "bejing");
map1.put("district", "tianjin");
map.put("name", "foreveross");
map.put("address", map1);
System.out.println(test.PojoToJson(user));
System.out.println(test.PojoToJson(list));
System.out.println(test.PojoToJson(map));
}
}
结果:
{"id":1,"name":"name","password":"password","telephone":"1234565"}
[1,12,123,123]
{"address":{"district":"tianjin","city":"bejing"},"name":"foreveross"}
此种方法主要利用mapper.writeValue方法 ,此方法使用提供的输出流,可以序列化
任何Java的值作为Json格式输出
利用org.codehaus.jackson.map.ObjectMapper
import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.core.JsonEncoding;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class TestJackson {
private JsonGenerator jsonGenerator = null;
private ObjectMapper objectMapper = null;
private OutputStream os = System.out;
public TestJackson() {
objectMapper = new ObjectMapper();
try {
jsonGenerator = objectMapper.getJsonFactory().createJsonGenerator(
os, JsonEncoding.UTF8);
} catch (IOException e) {
e.printStackTrace();
}
}
public String PojoToJson(Object obj) {
try {
jsonGenerator.writeObject(obj);
} catch (JsonProcessingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return os.toString().substring(0,
os.toString().lastIndexOf("java.io.PrintStream"));
}
public void close() {
try {
if (jsonGenerator != null) {
jsonGenerator.flush();
}
if (!jsonGenerator.isClosed()) {
jsonGenerator.close();
}
if (os != null) {
os.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Test2 t = new Test2();
User user = new User();
user.setId(1);
user.setName("name");
user.setPassword("password");
user.setTelephone("1234565");
Map<String, Object> userData = new HashMap<String, Object>();
Map<String, String> nameStruct = new HashMap<String, String>();
nameStruct.put("first", "Joe");
nameStruct.put("last", "Sixpack");
userData.put("name", nameStruct);
userData.put("gender", "MALE");
userData.put("verified", Boolean.FALSE);
userData.put("userImage", "Rm9vYmFyIQ==");
System.out.println(t.PojoToJson(userData));
System.out.println(t.PojoToJson(user));
t.close();
}
}
上面分别利用ObjectMapper的writeValue方法和JsonGenerator的writeObject方法完成对Java对象的转换,
二者传递的参数及构造的方式不同;JsonGenerator的创建依赖于ObjectMapper对象。 也就是说如果你要使用JsonGenerator来转换JSON.
那么你必须创建一个ObjectMapper。但是你用ObjectMapper来转换JSON,则不需要JSONGenerator。
- 浏览: 22513 次
相关推荐
1. 将JavaBean转换为Json字符串: 首先需要引入Jackson库,然后使用`ObjectMapper`类的`writeValueAsString()`方法: ```java ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper....
json 所需要的jackson-annotations-2.4.0.jar,jackson-core-2.4.2.jar, jackson-databind-2.4.2.jar,jackson-mapper-asl-1.9.11.jar
在本篇文章中,我们将深入探讨如何将JavaBean转换为JSON以及反向操作,从JSON还原为JavaBean。 首先,让我们了解JavaBean的基本概念。JavaBean遵循一定的规范,通常包含私有属性、公有的getter和setter方法,以及一...
"Json一键转Javabean工具"是一个实用的开发辅助工具,它能够帮助Java开发者快速地将JSON格式的数据转换成对应的JavaBean对象,极大地提高了开发效率。 JSON转换为JavaBean的过程通常包括以下步骤: 1. **解析JSON...
本主题以Java为例,探讨如何使用第三方库将JavaBean对象、List、Set或Map对象转换为JSON格式。 1. **JavaBean对象转JSON** JavaBean是一种遵循特定规范的Java类,通常用于封装数据。将JavaBean对象转为JSON时,...
6. **示例代码**:项目中的示例代码会涵盖各种使用场景,如简单的JavaBean到JSON的转换,复杂类型(如集合和自定义类型)的序列化,以及如何利用流式API处理大文件。通过阅读和运行这些示例,开发者可以快速掌握...
它提供了一种简单的方式来读取和设置JavaBean的属性,这对于将JavaBean转换为JSON对象至关重要。 4. `json-lib-2.3-jdk15.jar`:这是主要的JSON处理库,支持多种数据类型(包括JavaBean)与JSON之间的转换。`json-...
标题中的“提供将对象转换成JSON字符串的方法 (2).pdf”指的是一个关于如何在Java编程中将对象转换为JSON格式的文档。描述中提到的是这个文档的更新日期和作者信息。标签“互联网”可能暗示了这个方法在Web开发或者...
Java Bean转换为Json Schema是一种常见的数据转换操作,特别是在开发基于RESTful API的Web服务时,因为JSON Schema提供了数据验证和文档化的功能。Java Bean是Java编程中的一个概念,它是一类具有特定规则的POJO...
要将JavaBean对象转换为JsonString,我们可以使用一些流行的JSON库,如Jackson、Gson或Fastjson。以Jackson为例,首先需要在项目中引入Jackson库,然后可以使用`ObjectMapper`类的`writeValueAsString()`方法: `...
上述示例展示了如何将Java对象转换为JSON字符串,同样,也可以通过Gson或Jackson将JSON字符串转换回Java对象: ```java // 使用Gson反序列化 User user = gson.fromJson(json, User.class); // 使用Jackson反序列...
总的来说,Javabean转换为JSON字符串是Java开发中的常见任务,Jackson库提供了强大且灵活的工具来实现这一目标。然而,对于特殊格式的需求,如首字母大写,可能需要额外的处理,或者考虑是否应该在设计阶段就避免...
同样,我们也可以将JSON字符串转换为JavaBean对象。首先,你需要定义一个与JSON结构对应的JavaBean类,然后使用Jackson的`ObjectMapper`进行转换: ```java public class User { private String name; private...
在Java编程中,将JSON字符串转换为JavaBean实例是一个常见的任务,特别是在处理Web服务或API交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,而JavaBean是Java中的一种对象模型,用于封装...
标题中的“json自动生成javabean的工具jar”是指一个Java的库或者工具,它以JAR(Java Archive)文件形式提供,功能是将JSON格式的数据自动转化为JavaBean对象。JAR文件是Java平台特有的归档格式,包含了一组Java类...
在IT领域,特别是在Web开发中,JSON是传输数据的主要方式之一,因为它能够有效地将复杂的数据结构转化为字符串,便于在网络间传递。 在Java中,将各种对象转换为JSON字符串通常需要借助于一些库,如`org.json`或`...
4. 如果需要从JSON字符串反序列化回JavaBean,可以使用`JsonParserFactory`创建`JsonParser`,然后调用其方法将JSON字符串解析成JSON对象,再进一步转换为JavaBean。 例如,一个简单的JavaBean转换为JSON的示例代码...
`bean2json`方法是将JavaBean转换为JSON的焦点。它首先创建一个`StringBuilder`,然后获取JavaBean的属性信息(通过`Introspector.getBeanInfo`方法)。接着遍历所有属性,调用`object2json`方法将属性名称和值转换...
为了将JavaBean列表转换为JSON,我们需要使用到如Jackson或Gson这样的库,它们能将Java对象序列化为JSON字符串。 以Jackson为例,Java后端代码可能如下: ```java import ...
在Java开发中,有时我们需要将XML转换为JSON,反之亦然,或者将这些格式与JavaBean对象进行互换,以便于数据处理和传输。本篇文章将深入探讨XML、JSON与JavaBean之间的转换方法。 首先,我们来看XML和JSON的特性。...