如何在java中使用jackson将输入字符串转换为json字符串或json对象

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/30702315/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-11 10:01:39  来源:igfitidea点击:

How to convert input string to json string or json object using Hymanson in java

javaHymanson

提问by Rakesh

How to convert input string to json string or json object using Hymanson in java.

如何在java中使用Hymanson将输入字符串转换为json字符串或json对象。

Thanks in advance

提前致谢

采纳答案by Hazok

This is documented on mkyongand quoted here:

这在mkyong上有记录,并在此处引用:

Hymanson is a High-performance JSON processor Java library. In this tutorial, we show you how to use Hymanson's data binding to convert Java object to / from JSON.

Hymanson 是一个高性能的 JSON 处理器 Java 库。在本教程中,我们将向您展示如何使用 Hymanson 的数据绑定将 Java 对象转换为/从 JSON。

For object/json conversion, you need to know following two methods :

对于 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);

Note: Both writeValue() and readValue() has many overloaded methods to support different type of inputs and outputs. Make sure check it out.

注意:writeValue() 和 readValue() 都有许多重载方法来支持不同类型的输入和输出。请务必检查一下。

  1. Hymanson Dependency Hymanson contains 6 separate jars for different purpose, check here. In this case, you only need “Hymanson-mapper-asl” to handle the conversion, just declares following dependency in your pom.xml

    <repositories>
        <repository>
            <id>codehaus</id>
            <url>http://repository.codehaus.org/org/codehaus</url>
        </repository>
    </repositories>
    
    <dependencies>
        <dependency>
            <groupId>org.codehaus.Hymanson</groupId>
            <artifactId>Hymanson-mapper-asl</artifactId>
            <version>1.8.5</version>
        </dependency>
    </dependencies>
    

    For non-maven user, just get the Hymanson library here.

  2. POJO

    An user object, initialized with some values. Later use Hymanson to convert this object to / from 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 + "]";
        }
    }
    
  3. Java Object to JSON Convert an “user” object into JSON formatted string, and save it into a file “user.json“.

    package com.mkyong.core;
    
    import java.io.File;
    import java.io.IOException;
    import org.codehaus.Hymanson.JsonGenerationException;
    import org.codehaus.Hymanson.map.JsonMappingException;
    import org.codehaus.Hymanson.map.ObjectMapper;
    
    public class HymansonExample {
        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();
    
        }
    
      }
    
    }
    

    Output

    {"age":29,"messages":["msg 1","msg 2","msg 3"],"name":"mkyong"}
    

    Note Above JSON output is hard to read. You can enhance it by enable the pretty print feature.

  4. JSON to Java Object

    Read JSON string from file “user.json“, and convert it back to Java object.

    package com.mkyong.core;
    
    import java.io.File;
    import java.io.IOException;
    import org.codehaus.Hymanson.JsonGenerationException;
    import org.codehaus.Hymanson.map.JsonMappingException;
    import org.codehaus.Hymanson.map.ObjectMapper;
    
    public class HymansonExample {
        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();
    
        }
    
      }
    
    }
    
  1. Hymanson Dependency Hymanson 包含 6 个用于不同目的的独立 jar,请在此处查看。在这种情况下,您只需要“Hymanson-mapper-asl”来处理转换,只需在您的 pom.xml 中声明以下依赖项

    <repositories>
        <repository>
            <id>codehaus</id>
            <url>http://repository.codehaus.org/org/codehaus</url>
        </repository>
    </repositories>
    
    <dependencies>
        <dependency>
            <groupId>org.codehaus.Hymanson</groupId>
            <artifactId>Hymanson-mapper-asl</artifactId>
            <version>1.8.5</version>
        </dependency>
    </dependencies>
    

    对于非 Maven 用户,只需在此处获取 Hymanson 库。

  2. POJO

    一个用户对象,用一些值初始化。稍后使用 Hymanson 将此对象转换为/从 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 + "]";
        }
    }
    
  3. Java 对象转 JSON 将“用户”对象转换为 JSON 格式的字符串,并将其保存到文件“user.json”中。

    package com.mkyong.core;
    
    import java.io.File;
    import java.io.IOException;
    import org.codehaus.Hymanson.JsonGenerationException;
    import org.codehaus.Hymanson.map.JsonMappingException;
    import org.codehaus.Hymanson.map.ObjectMapper;
    
    public class HymansonExample {
        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 输出很难阅读。您可以通过启用漂亮的打印功能来增强它。

  4. JSON 到 Java 对象

    从文件“user.json”中读取 JSON 字符串,并将其转换回 Java 对象。

    package com.mkyong.core;
    
    import java.io.File;
    import java.io.IOException;
    import org.codehaus.Hymanson.JsonGenerationException;
    import org.codehaus.Hymanson.map.JsonMappingException;
    import org.codehaus.Hymanson.map.ObjectMapper;
    
    public class HymansonExample {
        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();
    
        }
    
      }
    
    }
    

Output

输出

    User [age=29, name=mkyong, messages=[msg 1, msg 2, msg 3]]

回答by Make

In java we can convert String to json by lot of methods.You can use collection for this purpose HashMap which gives you value in {key:value} pair which could be useful for you and if you are using Spring this can be helpful for you.

在 java 中,我们可以通过很多方法将 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());
            }
        }

回答by Spark-Beginner

Very nice tutorial from journaldev Hymanson-JSON processing

来自 journaldev Hymanson-JSON 处理的非常好的教程

you can use com.fasterxml.Hymanson.databind.ObjectMapperclass of Hymanson API to read or wirte a string formatted json object.

您可以使用com.fasterxml.Hymanson.databind.ObjectMapperHymanson API 类来读取或写入字符串格式的 json 对象。