`
weitao1026
  • 浏览: 1048978 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jackson json字符串、map、java对象的转换例子

 
阅读更多

jackson框架 json字符串、map、Java对象的转换例子

先下载框架jar包:

 

下面是一些例子:

 

 

package jackson;



import java.io.File;
import java.io.FileInputStream;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;


import org.codehaus.jackson.JsonEncoding;
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonToken;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.node.ArrayNode;
import org.codehaus.jackson.node.ObjectNode;
import org.junit.Test;




public class Testjackson {
   
//@Test
public void test1(){
try{

ObjectMapper mapper = new ObjectMapper();
    String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";


     //json字符串转对象
     Student student = mapper.readValue(jsonString, Student.class);
     System.out.println(student);
        
     //对象转json字符串
     jsonString = mapper.writeValueAsString(student);
     System.out.println(jsonString);
     
     //json字符串转为Map对象
     Map map=mapper.readValue(jsonString, Map.class);
     System.out.println(map);
     
}catch(Exception e) {
e.printStackTrace();
}
}


//@Test
public void test2(){
try{

Student student = new Student();
        student.setAge(10);
        student.setName("Mahesh");
        ObjectMapper mapper = new ObjectMapper();

        //将Java对象序列化到一个JSON文件
        mapper.writeValue(new File("d:/student.json"), student);
        System.out.println("d:/student.json文件生成结束");
        
        //读取JSON文件转换为对象
        Student student2 = mapper.readValue(new File("student.json"), Student.class);
        System.out.println(student2);
}catch(Exception e) {
e.printStackTrace();
}
}

//@Test
public void test3(){
try {
   ObjectMapper mapper = new ObjectMapper();
           Map<String,Object> studentDataMap = new HashMap<String,Object>(); 
           int[] marks = {1,2,3};


           Student student = new Student();
           student.setAge(10);
           student.setName("Mahesh");
           
           studentDataMap.put("student", student);
           studentDataMap.put("name", "Mahesh Kumar");  
           studentDataMap.put("verified", Boolean.FALSE);
           studentDataMap.put("marks", marks);
                
           //Map转换为joson文件
           mapper.writeValue(new File("d:/student2.json"), studentDataMap);
           //result student.json
//{ 
           //   "student":{"name":"Mahesh","age":10},
           //   "marks":[1,2,3],
           //   "verified":false,
           //   "name":"Mahesh Kumar"
           //}
           //json文件转换为map
           studentDataMap = mapper.readValue(new File("d:/student2.json"), Map.class);


           System.out.println(studentDataMap.get("student"));
           System.out.println(studentDataMap.get("name"));
           System.out.println(studentDataMap.get("verified"));
           System.out.println(studentDataMap.get("marks"));
           
} catch (Exception e) {
e.printStackTrace();
}
}
//@Test//树遍历
public void test4(){
try {
    ObjectMapper mapper = new ObjectMapper();
        String jsonString = "{\"name\":\"Mahesh Kumar\", \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
        JsonNode rootNode = mapper.readTree(jsonString);


        JsonNode nameNode = rootNode.path("name");
        System.out.println("Name: "+ nameNode.getTextValue());


        JsonNode ageNode = rootNode.path("age");
        System.out.println("Age: " + ageNode.getIntValue());


        JsonNode verifiedNode = rootNode.path("verified");
        System.out.println("Verified: " + (verifiedNode.getBooleanValue() ? "Yes":"No"));


        JsonNode marksNode = rootNode.path("marks");
        Iterator<JsonNode> iterator = marksNode.getElements();
        System.out.print("Marks: [ ");
        while (iterator.hasNext()) {
           JsonNode marks = iterator.next();
           System.out.print(marks.getIntValue() + " "); 
        }
        System.out.println("]");
} catch (Exception e) {
e.printStackTrace();
}
}
//@Test//树到JSON转换
public void test5(){
try {
ObjectMapper mapper = new ObjectMapper();


        JsonNode rootNode = mapper.createObjectNode();
        JsonNode marksNode = mapper.createArrayNode();
        ((ArrayNode)marksNode).add(100);
        ((ArrayNode)marksNode).add(90);
        ((ArrayNode)marksNode).add(85);
        ((ObjectNode) rootNode).put("name", "Mahesh Kumar");
        ((ObjectNode) rootNode).put("age", 21);
        ((ObjectNode) rootNode).put("verified", false);
        ((ObjectNode) rootNode).put("marks",marksNode);


        mapper.writeValue(new File("d:/student3.json"), rootNode);
            
        rootNode = mapper.readTree(new FileInputStream("student.json"));
       
        JsonNode nameNode = rootNode.path("name");
        System.out.println("Name: "+ nameNode.getTextValue());


        JsonNode ageNode = rootNode.path("age");
        System.out.println("Age: " + ageNode.getIntValue());


        JsonNode verifiedNode = rootNode.path("verified");
        System.out.println("Verified: " + (verifiedNode.getBooleanValue() ? "Yes":"No"));


        JsonNode marksNode1 = rootNode.path("marks");
        Iterator<JsonNode> iterator = marksNode1.getElements();
        System.out.print("Marks: [ ");
        while (iterator.hasNext()) {
           JsonNode marks = iterator.next();
           System.out.print(marks.getIntValue() + " "); 
        }
        System.out.println("]");
}catch (Exception e) {
e.printStackTrace();
}
}

//@Test//树到java对象
public void test6(){
try {
ObjectMapper mapper = new ObjectMapper();


        JsonNode rootNode = mapper.createObjectNode();
        JsonNode marksNode = mapper.createArrayNode();
        ((ArrayNode)marksNode).add(100);
        ((ArrayNode)marksNode).add(90);
        ((ArrayNode)marksNode).add(85);
        ((ObjectNode) rootNode).put("name", "Mahesh Kumar");
        ((ObjectNode) rootNode).put("age", 21);
        ((ObjectNode) rootNode).put("verified", false);
        ((ObjectNode) rootNode).put("marks",marksNode);


        mapper.writeValue(new File("student.json"), rootNode);


        rootNode = mapper.readTree(new FileInputStream("student.json"));


        Student2 student = mapper.treeToValue(rootNode, Student2.class);


        System.out.println("Name: "+ student.getName());
        System.out.println("Age: " + student.getAge());
        System.out.println("Verified: " + (student.isVerified() ? "Yes":"No"));
        System.out.println("Marks: "+Arrays.toString(student.getMarks()));
} catch (Exception e) {
e.printStackTrace();
}
}

@Test//Jackson流式API
public void test7(){
try {
JsonFactory jasonFactory = new JsonFactory();


        JsonGenerator jsonGenerator = jasonFactory.createJsonGenerator(new File("d:/student7.json"),
        JsonEncoding.UTF8);
        jsonGenerator.writeStartObject();
        jsonGenerator.writeStringField("name", "Mahesh Kumar"); 
        jsonGenerator.writeNumberField("age", 21);
        jsonGenerator.writeBooleanField("verified", false); 
        jsonGenerator.writeFieldName("marks"); 
        jsonGenerator.writeStartArray(); 
        jsonGenerator.writeNumber(100); 
        jsonGenerator.writeNumber(90); 
        jsonGenerator.writeNumber(85); 
        jsonGenerator.writeEndArray(); 
        jsonGenerator.writeEndObject(); 
        jsonGenerator.close();      
 


        //result student.json
        //{ 
        //   "name":"Mahesh Kumar",
        //   "age":21,
        //   "verified":false,
        //   "marks":[100,90,85]
        //}
        ObjectMapper mapper = new ObjectMapper();
        Map<String,Object> dataMap = mapper.readValue(new File("d:/student7.json"), Map.class);


        System.out.println(dataMap.get("name"));
        System.out.println(dataMap.get("age"));
        System.out.println(dataMap.get("verified"));
        System.out.println(dataMap.get("marks"));
} catch (Exception e) {
e.printStackTrace();
}
}

@Test//使用JsonParser 读取JSON
public void test8(){
try {

JsonFactory jasonFactory = new JsonFactory();

        JsonGenerator jsonGenerator = jasonFactory.createJsonGenerator(new File(
           "student.json"), JsonEncoding.UTF8);
        jsonGenerator.writeStartObject();
        jsonGenerator.writeStringField("name", "Mahesh Kumar"); 
        jsonGenerator.writeNumberField("age", 21);
        jsonGenerator.writeBooleanField("verified", false); 
        jsonGenerator.writeFieldName("marks"); 
        jsonGenerator.writeStartArray(); 
        jsonGenerator.writeNumber(100); 
        jsonGenerator.writeNumber(90); 
        jsonGenerator.writeNumber(85); 
        jsonGenerator.writeEndArray(); 
        jsonGenerator.writeEndObject(); 
        jsonGenerator.close();      
 

        //result student.json
        //{ 
        //   "name":"Mahesh Kumar",
        //   "age":21,
        //   "verified":false,
        //   "marks":[100,90,85]
        //}

        JsonParser jsonParser = jasonFactory.createJsonParser(new File("d:/student7.json"));
        while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
           //get the current token
           String fieldname = jsonParser.getCurrentName();
           if ("name".equals(fieldname)) {
              //move to next token
              jsonParser.nextToken();
              System.out.println(jsonParser.getText());        
 
           }
           if("age".equals(fieldname)){
              //move to next token
              jsonParser.nextToken();
              System.out.println(jsonParser.getNumberValue());        
 
           }
           if("verified".equals(fieldname)){
              //move to next token
              jsonParser.nextToken();
              System.out.println(jsonParser.getBooleanValue());        
 
           }
           if("marks".equals(fieldname)){
              //move to [ 
              jsonParser.nextToken();
              // loop till token equal to "]"
              while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
                 System.out.println(jsonParser.getNumberValue()); 
              }
           }
        }
} catch (Exception e) {
e.printStackTrace();
}
}
}


class Student2 {
  String name;
  int age;
  boolean verified;
  int[] marks;
  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 boolean isVerified() {
     return verified;
  }
  public void setVerified(boolean verified) {
     this.verified = verified;
  }
  public int[] getMarks() {
     return marks;
  }
  public void setMarks(int[] marks) {
     this.marks = marks;
  }
}

分享到:
评论

相关推荐

    利用java反射将json字符串转成对象.zip

    要将JSON字符串转换为Java对象,我们首先需要将JSON解析成一个Map或List。JSON库如Gson提供了`fromJson()`方法来实现这个过程。例如,使用Gson库的代码可能如下: ```java import com.google.gson.Gson; import ...

    json字符串转成 Map/List

    Gson是由Google提供的一个Java库,能够将Java对象转换为JSON字符串,反之亦然。将JSON字符串转化为Map,可以使用`fromJson()`方法: ```java import com.google.gson.Gson; import java.util.Map; String ...

    java中解析json字符串

    除了解析JSON字符串到Java对象,这两个库还支持将Java对象转换为JSON字符串,以及解析JSON到Map或List等数据结构。 3. **其他库** 除了Jackson和Gson,还有其他的JSON处理库,如org.json(提供简单的JSON工具类)...

    net.sf.json.JSONObject实现Object对象与Json字符串的互转

    是开源库Apache Commons Lang中的一个类,它提供了解决Java对象与JSON字符串之间转换的功能。这篇博客文章"net.sf.json.JSONObject实现Object对象与Json字符串的互转"深入探讨了如何使用`JSONObject`来处理这种转换...

    json格式与java类对象相互转换

    1. 将Java对象转换为JSON字符串,同样使用`ObjectMapper`: ```java User john = new User(1, "John", "john@example.com"); String johnJson = mapper.writeValueAsString(john); ``` 2. 对于集合类型,如List或...

    Java Web程序实现返回JSON字符串的方法总结

    Java Web 程序实现返回 JSON 字符串的方法总结 Java Web 程序实现返回 JSON 字符串的...使用 json.org 提供的 JSON 库可以轻松地将 Java 对象转换为 JSON 字符串,并且解决了 Java 对象属性为空时返回空字符串的问题。

    jackson json 转 map 数值科学计数法的问题解决.docx

    例如,在将 JSON 字符串转换为 Map 时,如果 JSON 中包含一个非常大的数字,例如 12345678901234567890,这个数字在 Java 中可能会被表示为科学计数法的形式,例如 1.2345678901234567E22。这可能会导致数据的精度...

    使用jackson完成json与java对象的互相转换实例

    要将一个Java对象转换为JSON字符串,我们可以使用`ObjectMapper`的`writeValueAsString()`方法。假设我们有一个简单的User类: ```java public class User { private String name; private int age; // getters...

    将JSON字符串转换成Map对象的方法

    在提供的文件内容中,提到了一种使用org.json库中的JSONObject类实现JSON字符串到Map对象转换的方法。具体步骤如下: 1. 首先,需要将JSON字符串转换为org.json库中的JSONObject对象。这一步可以通过JSONObject类...

    json转换工具jackson

    - **序列化**: Jackson 提供了 `ObjectMapper` 类,通过 `writeValueAsString()` 或 `writeValueAsBytes()` 方法可以将Java对象转换成JSON字符串或字节数组。 - **反序列化**: 使用 `readValue()` 方法,可以将...

    利用jackson包进行json字符串与pojo类之间的转换源代码

    反之,如果要将Java对象转换为JSON字符串,可以使用`ObjectMapper`的`writeValueAsString`方法。 ```java String jsonString = mapper.writeValueAsString(pojo); ``` 3. **配置和自定义** Jackson提供了丰富...

    Java对Json的一系列操作(构建、json与对象的转换)

    总结,Java对JSON的操作主要包括构建JSON对象、将JSON字符串转换为Java对象、将Java对象转换为JSON字符串,以及与Map对象的相互转换。开发者可以根据项目需求选择Gson、Jackson或其他库进行JSON处理。理解并熟练掌握...

    Jackson将json string转为Object,org.json读取json数组的实例

    描述中提到了一个实例,也就是使用Jackson库将JSON字符串转换为Java对象(Map),然后使用org.json库读取JSON数组。实例中说明了遇到的困难,即在使用Map读取第一级数据之后,尝试读取数组中的特定值时遇到了问题,...

    不用第三方jar的json与object(map、list)互换java类

    首先,`JsonUtil.java`很可能是这个功能的核心工具类,它包含了将Java对象转换为JSON字符串以及将JSON字符串解析为Java对象的方法。在没有第三方库如Gson或Jackson的情况下,这通常通过使用Java内置的`org.json`包来...

    json 与java之间数据的转换

    使用Jackson库的`ObjectMapper`类,我们可以轻松地将JSON字符串解析为Java对象。假设我们有以下JSON字符串: ```json { "name": "John", "age": 30, "city": "New York" } ``` 可以创建一个对应的Java类: ```...

    Java对象与Json之间的互相转换的jar包

    在处理JSON数据时,我们通常需要将Java对象转换为JSON字符串,或者将JSON字符串反序列化为Java对象。这个"Java对象与Json之间的互相转换的jar包"正是提供了这样的功能。 这个jar包可能包含了如Jackson、Gson、...

    json转化字符串案例

    1. **JSON对象到字符串**:如果你有一个Java对象,例如一个User类的实例,你可以使用JSON库将其转换为JSON字符串。例如,使用Jackson库,你需要先添加依赖,然后创建一个ObjectMapper对象,调用其`...

    json-lib 使用总结--java对象转json字符串

    首先,`json-lib` 支持多种类型的 Java 对象转换,包括基本类型、集合、数组、Map 以及自定义对象。在将 Java 对象转换为 JSON 字符串时,可以使用 `net.sf.json.JSONObject.fromObject()` 方法。例如,对于一个简单...

    json转换java常用工具类

    通过`JSONArray.fromObject(jsonString)`,可以将JSON字符串解析为`JSONArray`,然后通过迭代数组中的每个元素并调用`JSONObject.toBean()`,将每个JSON对象转换为指定类的对象。 `setDataFormat2JAVA`方法未在代码...

    各种对象转成JSON字符串 (2).docx

    上述代码片段展示了一个名为`JSONUtil`的工具类,它提供了将不同类型的Java对象转换为JSON字符串的方法。这个工具类覆盖了基本类型、数组、集合(List、Set)、Map以及JavaBean对象的转换。 1. **基本类型转换**: ...

Global site tag (gtag.js) - Google Analytics