Questions about the conversion between JSON object types and string types in Java

Source: Internet
Author: User
Tags object object tojson

questions about the conversion between JSON object types and string types in Java
The conversion between JSON format conversion object,map,collection type and string type in Java is widely and widely used in our actual projects. The process of recent work is also often there, so that you encapsulate a Jsonutil.java class。

Required jar Package: Slf4j-jdk14-1.5.6.jar,slf4j-api-1.5.6.jar------> This two jar package is a SLF4J log jar package

Jackson-annotations-2.1.1.jar,jackson-core-2.1.1.jar,jackson-databind-2.1.1.jar----> A dependency package for JSON conversion.
Package Com.clark.util;import Java.io.ioexception;import Java.io.stringwriter;import java.util.arraylist;import Java.util.collection;import Java.util.date;import Java.util.hashmap;import Java.util.iterator;import Java.util.list;import java.util.map;import java.util.set;import Org.slf4j.logger;import org.slf4j.LoggerFactory; Import Com.fasterxml.jackson.core.jsonfactory;import Com.fasterxml.jackson.core.jsongenerationexception;import Com.fasterxml.jackson.core.jsongenerator;import Com.fasterxml.jackson.core.jsonparseexception;import Com.fasterxml.jackson.databind.jsonmappingexception;import Com.fasterxml.jackson.databind.objectmapper;import Com.fasterxml.jackson.databind.ser.filterprovider;import Com.fasterxml.jackson.databind.ser.impl.simplebeanpropertyfilter;import Com.fasterxml.jackson.databind.ser.impl.simplefilterprovider;import com.clark.model.user;/* * * @author Caolipeng * @ Title Jsonutil.java * @description provides a static method for JSON data conversion * @version V1.0 */public class Jsonutil {private statIC final Logger Logger = Loggerfactory.getlogger (jsonutil.class);/** * Performance Aspects Jackson > Gson > Json So here's the decision to use JackSon to co Llection converted to JSON * parameter is collection * * @param collection */public static String ToJson (Collection<object> collection) {/* * use Gson Gson Gson = new Gson (); String JSON = Gson.tojson (map); *//* * Use Jackson's way */string json = "[]"; Objectmapper mapper = new Objectmapper (); StringWriter SW = new StringWriter (); try {jsongenerator Gen = new Jsonfactory (). Createjsongenerator (SW); Mapper.writevalue (Gen, collection); Gen.close (); json = Sw.tostring ();} catch (Jsongenerationexception e) {json = "[]"; Logger.error ("------1------ToJson jsongenerationexception error:\n", E) ;} catch (Jsonmappingexception e) {json = "[]"; Logger.error ("------2------ToJson jsonmappingexception error:\n", e);} catch (IOException e) {json = "[]"; Logger.error ("------3------ToJson IOException error:\n", e);} return JSON;} /** * @Title: ToJson * @Description: Convert object to JSON data * @param @param obj * @param @rEturn Set File * @return string return type * @throws */public static string ToJson (Object obj) {String json = "[]"; Objectmapper Mapp ER = new Objectmapper (); StringWriter SW = new StringWriter (); try {jsongenerator Gen = new Jsonfactory (). Createjsongenerator (SW); Mapper.writevalue (gen, obj); Gen.close (); json = Sw.tostring ();} catch (Jsongenerationexception e) {json = "[]"; Logger.error ("------1------ToJson ioexception error:\n", e);} catch (JSON Mappingexception e) {json = "[]"; Logger.error ("------2------ToJson ioexception error:\n", e);} catch (IOException e) {JSO n = "[]"; Logger.error ("------3------ToJson IOException error:\n", e);} return JSON;} /** * Convert map to JSON map parameter * * @param map * @return * @throws ioexception */public static String ToJson (map<string, Object > map) {String json = "[]"; Objectmapper mapper = new Objectmapper (); StringWriter SW = new StringWriter (); try {jsongenerator Gen = new Jsonfactory (). Createjsongenerator (SW); Mapper.writevalue (gen, map); Gen.close (); json = Sw.tostring ();}catch (Jsongenerationexception e) {json = "[]"; Logger.error ("----1------toJson jsongenerationexception:\n" + E); "} catch (Jsonmappingexception e) {json = "[]"; Logger.error ("----2------toJson jsonmappingexception:\n" + e);} catch (IOException e) {json = "[]"; Logger.error ("----3------ToJson ioexception:\n" + e);} return JSON;} /** * Convert JSON string to Object * * @author Weiyuanhua * @date 2010-11-18 pm 02:52:13 * @param jsonstr * JSON String * @param Beanclass * Generic Object * @param field * object to ignore properties * @return */public static object Jsontoobject (String JS Onstr, class<?> Beanclass) throws Jsonparseexception, Jsonmappingexception, IOException {ObjectMapper Objectmapper = new Objectmapper (); return Objectmapper.readvalue (Jsonstr.getbytes (), beanclass);} public static Object Jsontoobject (String jsonstr, String encoding,class<?> beanclass) throws Jsonparseexception, Jsonmappingexception, IOException {objectmapper objectmapper = new Objectmapper (); return Objectmapper.readvalue(Jsonstr.getbytes (encoding), beanclass);} public static map<string, object> Parsejson2map (String jsonstr) throws Jsonparseexception, Jsonmappingexception, IOException {Objectmapper objectmapper = new Objectmapper (); return Objectmapper.readvalue (Jsonstr, Map.class);} Ignore public static String ToJson (Object object,string filtername) {objectmapper mapper = new Objectmapper is not required for memory properties        ();          String json = "[]"; try {filterprovider Filterprovider = new Simplefilterprovider (). addfilter (FilterName, simplebeanpropertyfilt              Er.serializeallexcept ());          JSON = Mapper.writer (filterprovider). Writevalueasstring (object);              } catch (Exception e) {json = "[]";        Logger.error ("----1------toJson exception:\n" + e);    } return JSON;      }/* * * @param object A class that requires JSON serialization can be any complex class * @param args need to filter the property name class object name or some property name can be filtered * */public static string ToJson (Object object, String[] args, String filtername) {string json = "[]"; Objectmapper mapper = new Objectmapper (); try {Filterprovider filterprovide R = new Simplefilterprovider (). addfilter (Filtername,simplebeanpropertyfilter.serializeallexcept (args)); json = Mapper.writer (Filterprovider). Writevalueasstring (object);} catch (Exception e) {json = "[]"; Logger.error ("----1------toJson exception:\n" + e);} return JSON;} public static void Main (string[] args) {User user = new User (triple, "AAA", "123456", New Date ()),//string result = ToJson (use R, "id"); String result = ToJson (user); SYSTEM.OUT.PRINTLN (result); List List = new ArrayList (), List.add (0, "name"), List.add (1, "favorite"); String li = ToJson (list); System.out.println (LI); map<string,string> map = new hashmap<string,string> () map.put ("Password", "123"); Map.put ("Name", "Clark" ); Map.put ("Call", "Wowo"); String Mr = ToJson (map); System.out.println (MR);D ate d = new Date (); String jsonstr = "{\" id\ ": 23,\" name\ ": \" 44444\ "}"; try {User U = (user) Jsontoobject (jsonstr, user.Class); System.out.println (U.getname ()); map<string, object> mapresult = Parsejson2map (JSONSTR); set<string> key = Mapresult.keyset (); Iterator iter = Key.iterator (); while (Iter.hasnext ()) {string k = (string) ITER . Next (); System.out.println (Mapresult.get (k));}} catch (Jsonparseexception e) {e.printstacktrace ();} catch (Jsonmappingexception e) {e.printstacktrace ();} catch ( IOException e) {e.printstacktrace ();}}}
in the application test, the Model class---The User.java class as follows:
Package Com.clark.model;import Java.util.date;public class User {private int id;    private String name;    private String password;    private date date;    public int getId () {return id;    } public void setId (int id) {this.id = ID;    } public String GetName () {return name;    } public void SetName (String name) {this.name = name;    } public String GetPassword () {return password;    } public void SetPassword (String password) {this.password = password;    Public Date getDate () {return date;    public void SetDate (date date) {this.date = date;        The public User (int ID, string name, string password, date date) {super ();        This.id = ID;        THIS.name = name;        This.password = password;    This.date = date; The public User () {} @Override the public String toString () {return ' Id: ' +this.getid () + ' \ n ' + "Name:" +this.getname () + "\ n" + "Password:" +This.getpassword (); }}







Questions about the conversion between JSON object types and string types in Java

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.