如何在 java 中使用 jackson 将输入字符串转换为 json 字符串或 json 对象
How to convert input string to json string or json object using jackson in java
如何在 java.
中使用 jackson 将输入字符串转换为 json 字符串或 json 对象
提前致谢
这在 mkyong 上有记录并在此处引用:
Jackson 是一个高性能 JSON 处理器 Java 库。在本教程中,我们将向您展示如何使用 Jackson 的数据绑定将 Java 对象与 JSON.
对象相互转换
对于object/json转换,你需要知道以下两种方法:
//1. Convert Java object to JSON format
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(new File("c:\user.json"), user);
//2. Convert JSON to Java object
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(new File("c:\user.json"), User.class);
注意:writeValue() 和 readValue() 都有许多重载方法来支持不同类型的输入和输出。请务必检查一下。
杰克逊依赖
Jackson 包含 6 个用于不同用途的独立罐子,请在此处查看。在这种情况下,您只需要“jackson-mapper-asl”来处理转换,只需在 pom.xml
中声明以下依赖项
<repositories>
<repository>
<id>codehaus</id>
<url>http://repository.codehaus.org/org/codehaus</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.8.5</version>
</dependency>
</dependencies>
对于非 Maven 用户,只需在此处获取 Jackson 库。
POJO
一个用户对象,用一些值初始化。稍后使用 Jackson 将此对象转换为/自 JSON.
package com.mkyong.core;
import java.util.ArrayList;
import java.util.List;
public class User {
private int age = 29;
private String name = "mkyong";
private List<String> messages = new ArrayList<String>() {
{
add("msg 1");
add("msg 2");
add("msg 3");
}
};
//getter and setter methods
@Override
public String toString() {
return "User [age=" + age + ", name=" + name + ", " +
"messages=" + messages + "]";
}
}
Java 反对 JSON
将“user”对象转换为JSON格式的字符串,并保存到文件“user.json”中。
package com.mkyong.core;
import java.io.File;
import java.io.IOException;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
public class JacksonExample {
public static void main(String[] args) {
User user = new User();
ObjectMapper mapper = new ObjectMapper();
try {
// convert user object to json string, and save to a file
mapper.writeValue(new File("c:\user.json"), user);
// display to console
System.out.println(mapper.writeValueAsString(user));
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
输出
{"age":29,"messages":["msg 1","msg 2","msg 3"],"name":"mkyong"}
备注
JSON 以上的输出难以阅读。您可以通过启用漂亮的打印功能来增强它。
JSON 到 Java 对象
从文件“user.json”中读取JSON字符串,并将其转换回Java对象。
package com.mkyong.core;
import java.io.File;
import java.io.IOException;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
public class JacksonExample {
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
try {
// read from file, convert it to user class
User user = mapper.readValue(new File("c:\user.json"), User.class);
// display to console
System.out.println(user);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
输出
User [age=29, name=mkyong, messages=[msg 1, msg 2, msg 3]]
在 java 中,我们可以通过大量 methods.You 将 String 转换为 json 可以为此目的使用集合 HashMap 为您提供 {key:value} 对中的值,这可能是对您有用,如果您正在使用 Spring,这可能对您有帮助。
//****************** update The user Info**********************//
@RequestMapping(value = "/update/{id}", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody
Status updateMsBuddy(@RequestBody MsBuddyInfo msBuddyInfo){
try{
if(msBuddyService.updateMsBuddy(msBuddyInfo))
return new Status(1, "MsBuddyInfo updated Successfully",+msBuddyInfo.getId());
else
return new Status(1, "unable to updated Profile",+msBuddyInfo.getId());
}
catch(Exception e){
return new Status(0,e.toString());
}
}
来自 journaldev 的非常好的教程 Jackson-JSON processing
您可以使用 jackson API 的 com.fasterxml.jackson.databind.ObjectMapper
class 来读取或写入字符串格式的 json 对象。
如何在 java.
中使用 jackson 将输入字符串转换为 json 字符串或 json 对象提前致谢
这在 mkyong 上有记录并在此处引用:
Jackson 是一个高性能 JSON 处理器 Java 库。在本教程中,我们将向您展示如何使用 Jackson 的数据绑定将 Java 对象与 JSON.
对象相互转换对于object/json转换,你需要知道以下两种方法:
//1. Convert Java object to JSON format
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(new File("c:\user.json"), user);
//2. Convert JSON to Java object
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(new File("c:\user.json"), User.class);
注意:writeValue() 和 readValue() 都有许多重载方法来支持不同类型的输入和输出。请务必检查一下。
杰克逊依赖 Jackson 包含 6 个用于不同用途的独立罐子,请在此处查看。在这种情况下,您只需要“jackson-mapper-asl”来处理转换,只需在 pom.xml
中声明以下依赖项<repositories> <repository> <id>codehaus</id> <url>http://repository.codehaus.org/org/codehaus</url> </repository> </repositories> <dependencies> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.8.5</version> </dependency> </dependencies>
对于非 Maven 用户,只需在此处获取 Jackson 库。
POJO
一个用户对象,用一些值初始化。稍后使用 Jackson 将此对象转换为/自 JSON.
package com.mkyong.core; import java.util.ArrayList; import java.util.List; public class User { private int age = 29; private String name = "mkyong"; private List<String> messages = new ArrayList<String>() { { add("msg 1"); add("msg 2"); add("msg 3"); } }; //getter and setter methods @Override public String toString() { return "User [age=" + age + ", name=" + name + ", " + "messages=" + messages + "]"; } }
Java 反对 JSON 将“user”对象转换为JSON格式的字符串,并保存到文件“user.json”中。
package com.mkyong.core; import java.io.File; import java.io.IOException; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; public class JacksonExample { public static void main(String[] args) { User user = new User(); ObjectMapper mapper = new ObjectMapper(); try { // convert user object to json string, and save to a file mapper.writeValue(new File("c:\user.json"), user); // display to console System.out.println(mapper.writeValueAsString(user)); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
输出
{"age":29,"messages":["msg 1","msg 2","msg 3"],"name":"mkyong"}
备注 JSON 以上的输出难以阅读。您可以通过启用漂亮的打印功能来增强它。
JSON 到 Java 对象
从文件“user.json”中读取JSON字符串,并将其转换回Java对象。
package com.mkyong.core; import java.io.File; import java.io.IOException; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; public class JacksonExample { public static void main(String[] args) { ObjectMapper mapper = new ObjectMapper(); try { // read from file, convert it to user class User user = mapper.readValue(new File("c:\user.json"), User.class); // display to console System.out.println(user); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
输出
User [age=29, name=mkyong, messages=[msg 1, msg 2, msg 3]]
在 java 中,我们可以通过大量 methods.You 将 String 转换为 json 可以为此目的使用集合 HashMap 为您提供 {key:value} 对中的值,这可能是对您有用,如果您正在使用 Spring,这可能对您有帮助。
//****************** update The user Info**********************//
@RequestMapping(value = "/update/{id}", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody
Status updateMsBuddy(@RequestBody MsBuddyInfo msBuddyInfo){
try{
if(msBuddyService.updateMsBuddy(msBuddyInfo))
return new Status(1, "MsBuddyInfo updated Successfully",+msBuddyInfo.getId());
else
return new Status(1, "unable to updated Profile",+msBuddyInfo.getId());
}
catch(Exception e){
return new Status(0,e.toString());
}
}
来自 journaldev 的非常好的教程 Jackson-JSON processing
您可以使用 jackson API 的 com.fasterxml.jackson.databind.ObjectMapper
class 来读取或写入字符串格式的 json 对象。