简单objectToJson

合集下载

oc模型转json

oc模型转json

oc模型转json
要将OC(Object Constraint)模型转换为JSON格式,您需要使用适当的工具或库。

目前,没有直接将OC模型转换为JSON的标准工具,但有一些开源工具和库可以间接完成此任务。

以下是几种常用的工具和库:
1、OpenOCL: OpenOCL是一个用于OC语言的开源编译器,可以将OC源代码转换为C代码。

虽然它不是直接将OC模型转换为JSON,但它可以帮助您将OC代码编译为可以在其他平台上运行的代码。

2、OCL2JSON: OCL2JSON是一个用于将OC模型转换为JSON 的开源工具。

它使用OC语言作为输入,并生成一个JSON文件作为输出。

您可以使用该工具将OC模型转换为JSON格式,然后将其用于其他应用程序或服务。

3、OCLint: OCLint是一个静态分析工具,用于检查OC代码中的约束和逻辑错误。

虽然它不是直接将OC模型转换为JSON,但它可以帮助您验证OC模型的正确性和一致性。

用第三方工具类,将JavaBean、List、MapString,Object转成JSON文本

用第三方工具类,将JavaBean、List、MapString,Object转成JSON文本

⽤第三⽅⼯具类,将JavaBean、List、MapString,Object转成JSON⽂本导⼊第三⽅jar包:》commons-beanutils-1.7.0.jar》commons-collections-3.1.jar》commons-lang-2.5.jar》commons-logging-1.1.1.jar》ezmorph-1.0.3.jar》json-lib-2.1-jdk15.jar(1)JavaBean->JSON》JSONArray jsonArray = JSONArray.fromObject(city);》String jsonJAVA = jsonArray.toString();(2)List<JavaBean>->JSON》JSONArray jsonArray = JSONArray.fromObject(cityList);》String jsonJAVA = jsonArray.toString();(3)List<String>->JSON》JSONArray jsonArray = JSONArray.fromObject(stringList);》String jsonJAVA = jsonArray.toString();(4)Map<String,Object>->JSON【重点】package loaderman.bean2json;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import net.sf.json.JSONArray;import org.junit.Test;/*** 演⽰⽤第三⽅⼯具类,将JavaBean、List、Map<String,Object>转成JSON⽂本**/public class TestJson {@Testpublic void javabean2json() {User user = new User(1, "哈哈", 123, "男");JSONArray jsonArray = JSONArray.fromObject(user);String jsonJAVA = jsonArray.toString();System.out.println(jsonJAVA);//[{"id":1,"name":"哈哈","sal":7000}]}@Testpublic void list2json() {List<User> userList = new ArrayList<User>();userList.add(new User(1, "恩和", 123, "男"));userList.add(new User(2, "恩和⽼婆", 123, "男"));userList.add(new User(3, "恩和⼩孩", 24, "男"));JSONArray jsonArray = JSONArray.fromObject(userList);String jsonJAVA = jsonArray.toString();System.out.println(jsonJAVA);//[{"id":1,"name":"恩和","sal":7000},{"id":2,"name":"福⽼婆","sal":8000},{"id":3,"name":"恩和","sal":20000}]}@Testpublic void map2json() {List<User> userList = new ArrayList<User>();userList.add(new User(1, "张三", 7000, "男"));userList.add(new User(2, "张三⽼婆", 8000, "⼥"));userList.add(new User(3, "张三⼩孩", 20000, "男"));userList.add(new User(4, "张三⼩孩的⼩孩", 40000, "男"));Map<String, Object> map = new HashMap<String, Object>();//total表⽰集合的长度map.put("total", userList.size());//rows表⽰集合内容map.put("rows", userList);JSONArray jsonArray = JSONArray.fromObject(map);String jsonJAVA = jsonArray.toString();System.out.println(jsonJAVA);jsonJAVA = jsonJAVA.substring(1, jsonJAVA.length() - 1); System.out.println(jsonJAVA);}}。

jsonobject对象转json字符串方法

jsonobject对象转json字符串方法

Python 中 JSONObject 对象转 JSON 字符串方法在 Python 中,可以使用多种方式将 JSONObject 对象转换为JSON 字符串。

以下是几种常用的方法:1. 使用 json 模块中的 dumps 函数json 模块是 Python 标准库中用于处理 JSON 数据的模块之一。

使用 dumps 函数可以将 JSONObject 对象转换为 JSON 字符串。

该函数的语法如下:```pythonimport jsonjson_object = {"key1": "value1", "key2": "value2"}json_string = json.dumps(json_object)print(json_string)```输出结果为:```python{"key1": "value1", "key2": "value2"}```2. 使用 json 模块中的 JSONEncoder 类JSONEncoder 类是 json 模块中用于编码 JSON 数据的类。

可以通过实例化 JSONEncoder 类并调用其 encode 方法将 JSONObject对象转换为 JSON 字符串。

该方法的语法如下:```pythonimport jsonjson_object = {"key1": "value1", "key2": "value2"}json_encoder = json.JSONEncoder()json_string = json_encoder.encode(json_object)print(json_string)```输出结果为:```python{"key1": "value1", "key2": "value2"}```3. 使用第三方库 jsonpicklejsonpickle 是 Python 中一个用于序列化和反序列化 Python 对象的第三方库。

对象转json 多次转编译

对象转json 多次转编译

对象转json 多次转编译对象转JSON是一种常见的数据处理技术,将对象转换为JSON格式的数据。

在编程中,我们经常需要将对象转换为JSON格式,以便在不同的系统之间传输和交换数据。

本文将探讨对象转JSON的过程,并介绍如何多次转编译为标题。

一、对象转JSON的过程对象转JSON的过程主要包括以下几个步骤:1. 创建一个对象,并设置其属性值。

2. 使用编程语言提供的JSON库,将对象转换为JSON格式的字符串。

3. 将JSON格式的字符串发送给其他系统或保存到文件中。

二、多次转编译为标题2.1 对象转JSON的基本概念及原理2.2 如何使用编程语言进行对象转JSON2.3 JSON格式的字符串的特点及用途2.4 对象转JSON的应用场景2.5 对象转JSON的性能优化技巧2.6 如何处理转换过程中的异常情况2.7 对象转JSON的安全性考虑三、对象转JSON的基本概念及原理对象转JSON是指将一个对象转换为JSON格式的字符串。

JSON是一种轻量级的数据交换格式,常用于前后端之间的数据传输和存储。

它以键值对的形式表示数据,并使用大括号包围。

四、如何使用编程语言进行对象转JSON在大多数编程语言中,都提供了相应的JSON库来处理对象转JSON 的操作。

我们可以使用这些库提供的方法,将对象转换为JSON格式的字符串。

五、JSON格式的字符串的特点及用途JSON格式的字符串具有以下特点:1. 简洁:JSON格式的字符串相比其他数据格式更加简洁,易于阅读和解析。

2. 可读性强:JSON格式的字符串使用键值对的形式,使得数据结构清晰可读。

3. 跨平台:JSON格式的字符串可以在不同的系统和编程语言之间互相转换和解析。

4. 支持复杂数据结构:JSON格式的字符串不仅可以表示简单的数据类型,还可以表示复杂的数据结构,如数组、嵌套对象等。

六、对象转JSON的应用场景对象转JSON在实际开发中有广泛的应用场景,例如:1. 前后端数据交互:前端页面通过AJAX请求后端接口时,通常需要将对象转换为JSON格式的字符串进行传输。

Json字符串与Object对象相互转换的几种方式

Json字符串与Object对象相互转换的几种方式

Json字符串与Object对象相互转换的⼏种⽅式Json-Lib、Org.Json、Jackson、Gson、FastJson五种⽅式转换json类型只列举了最省事的⽅式。

不涉及复制情况和速度。

测试⽤例,⼀个User类,属性name,age,location。

重写toString()。

public class User {private String name;private Integer age;private String location;public User() {}public User(String name) { = name;}public User(String name, Integer age) { = name;this.age = age;}public User(String name, Integer age, String location) { = name;this.age = age;this.location = location;}public String getName() {return name;}public void setName(String name) { = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getLocation() {return location;}public void setLocation(String location) {this.location = location;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +", location='" + location + '\'' +'}';}}1、Json-Libmaven依赖如下,需注意<classifier>jdk15</classifier>,jar包区分jdk1.3和jdk1.5版本<dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>2.4</version><classifier>jdk15</classifier>import net.sf.json.JSONObject;public class JsonLibDemo {public static void main(String[] args) {//创建测试objectUser user = new User("李宁",24,"北京");System.out.println(user);//转成json字符串JSONObject jsonObject = JSONObject.fromObject(user);String json = jsonObject.toString();System.out.println(json);//json字符串转成对象JSONObject jsonObject1 = JSONObject.fromObject(json);User user1 = (User) JSONObject.toBean(jsonObject1,User.class); System.out.println(user1);}}2、org.jsonmaven依赖如下<dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20170516</version></dependency>测试demoimport org.json.JSONObject;public class OrgJsonDemo {public static void main(String[] args) {//创建测试objectUser user = new User("李宁",24,"北京");System.out.println(user);//转成json字符串String json = new JSONObject(user).toString();System.out.println(json);//json字符串转成对象JSONObject jsonObject = new JSONObject(json);String name = jsonObject.getString("name");Integer age = jsonObject.getInt("age");String location = jsonObject.getString("location");User user1 = new User(name,age,location);System.out.println(user1);}}3、Jacksonmaven依赖<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version>import com.fasterxml.jackson.databind.ObjectMapper; public class JacksonDemo {public static void main(String[] args) {//创建测试objectUser user = new User("李宁",24,"北京");System.out.println(user);//转成json字符串ObjectMapper mapper = new ObjectMapper();try {String json = mapper.writeValueAsString(user); System.out.println(json);//json字符串转成对象User user1 = mapper.readValue(json,User.class); System.out.println(user1);} catch (java.io.IOException e) {e.printStackTrace();}}}4、Gsonmaven依赖<dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.1</version></dependency>测试demoimport com.google.gson.Gson;public class GsonDemo {public static void main(String[] args) {//创建测试objectUser user = new User("李宁",24,"北京");System.out.println(user);//转成json字符串Gson gson = new Gson();String json = gson.toJson(user);System.out.println(json);//json字符串转成对象User user1 = gson.fromJson(json,User.class);System.out.println(user1);}}5、FastJsonmaven依赖<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.37</version></dependency>测试demoimport com.alibaba.fastjson.JSON;public class FastJsonDemo {public static void main(String[] args) {//创建测试objectUser user = new User("李宁",24,"北京");System.out.println(user);//转成json字符串String json = JSON.toJSON(user).toString();System.out.println(json);//json字符串转成对象User user1 = JSON.parseObject(json,User.class); System.out.println(user1);}}json-lib时间有些久远,jar包只更新到2010年org.json⽤起来有些繁琐Jackson、Gson、FastJson只需⼀两句话就可以搞定。

Java使用JSONObject操作json实例解析

Java使用JSONObject操作json实例解析

Java使⽤JSONObject操作json实例解析本⽂实例讲述了Java使⽤JSONObject操作json。

分享给⼤家供⼤家参考,具体如下:简介在程序开发过程中,在参数传递,函数返回值等⽅⾯,越来越多的使⽤JSON。

JSON(JavaScript Object Notation)是⼀种轻量级的数据交换格式,同时也易于机器解析和⽣成、易于理解、阅读和撰写,⽽且Json采⽤完全独⽴于语⾔的⽂本格式,这使得Json成为理想的数据交换语⾔。

JSON建构于两种结构:“名称/值”对的集合(A Collection of name/value pairs),在不同的语⾔中,它被理解为对象(Object), 记录(record), 结构(struct),字典(dictionary), 有趣列表(keyed list), 哈希表(hash table)或者关联数组(associative array)。

JSONObject依赖:最后⼀⾏需要保留,有两个jdk版本的实现:json-lib-2.1-jdk13.jar和json-lib-2.1-jdk15.jar<dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>2.4</version><classifier>jdk15</classifier></dependency>使⽤net.sf.json需要导⼊的jar包或者点击此处。

JSONObject创建JSONObject,添加属性//创建JSONObjectJSONObject json = new JSONObject();//添加属性json.put("username", "张三");json.put("password", "123");//打印System.out.println(json);//增加属性json.element("sex", "男");json.put("age", 18);System.out.println(json);根据key返回输出System.out.println(json.get("sex"));判断输出对象的类型boolean isArray = json.isArray();boolean isEmpty = json.isEmpty();boolean isNullObject = json.isNullObject();System.out.println("是否数组:"+isArray+", 是否空:"+isEmpty+", 是否空为空对象:"+isNullObject);把JSONArray添加到JSONObject中//开始添加json.element("student", jsonArray);System.out.println(json);全部代码:import net.sf.json.JSONArray;import net.sf.json.JSONObject;public class Json {public static void main(String[] args) {//创建JSONObjectJSONObject json = new JSONObject();//添加属性json.put("username", "张三");json.put("password", "123");//打印System.out.println(json);//增加属性json.element("sex", "男");json.put("age", 18);System.out.println(json);//根据key返回System.out.println(json.get("sex"));//判断输出对象的类型boolean isArray = json.isArray();boolean isEmpty = json.isEmpty();boolean isNullObject = json.isNullObject();System.out.println("是否数组:"+isArray+", 是否空:"+isEmpty+", 是否空为空对象:"+isNullObject); System.out.println("=====");//把JSONArray添加到JSONObject中JSONArray jsonArray = new JSONArray();jsonArray.add(0, "张三");jsonArray.add(1, "123");//开始添加json.element("student", jsonArray);System.out.println(json);}}运⾏结果:JSONArray创建JSONArray,添加属性值jsonArray.element("男");System.根据下标返回输出System.out.println(jsonArray.get(0));根据下标设置新值,修改jsonArray.set(0, "李四");System.out.println(jsonArray);把JSONObject放⼊到JSONArray中//把JSONObject放⼊到JSONArray中JSONObject jsonObject = new JSONObject(); jsonObject.put("username", "张三"); jsonObject.put("password", "123"); jsonArray.add(jsonObject);System.全部代码:import net.sf.json.JSONArray;import net.sf.json.JSONObject;public class Json {public static void main(String[] args) {//创建JSONArrayJSONArray jsonArray = new JSONArray();//添加jsonArray.add(0, "张三");jsonArray.add(1, "123");jsonArray.element("男");System.out.println(jsonArray);//根据下标返回输出System.out.println(jsonArray.get(0));//根据下标设置新值,修改jsonArray.set(0, "李四");System.out.println(jsonArray);//把JSONObject放⼊到JSONArray中JSONObject jsonObject = new JSONObject(); jsonObject.put("username", "张三");jsonObject.put("password", "123");jsonArray.add(jsonObject);System.out.println(jsonArray);//循环输出for(int i = 0; i < jsonArray.size(); i++) {System.out.println(jsonArray.get(i));}}}运⾏结果JavaBean与json字符串互转student类:public class Student {private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {ername = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public Student(String username, String password) {super();ername = username;this.password = password;}public Student() {super();// TODO Auto-generated constructor stub}@Overridepublic String toString() {return "Student [username=" + username + ", password=" + password + "]"; }}定义对象,JavaBean对象转json字符串//定义对象Student stu = new Student("张三", "123456");//JavaBean对象转json字符串JSONObject jsonObject = JSONObject.fromObject(stu);System.out.println(jsonObject);json字符串转为javaBean//json字符串转为javaBean//定义json字符串String jsondata = "{\"username\":\"李四\", \"password\":\"123\"}";//转为json对象JSONObject json = JSONObject.fromObject(jsondata);//转为JavaBean对象Student stu2 = (Student)JSONObject.toBean(json, Student.class); System.out.println(stu2.toString());import net.sf.json.JSONObject;public class Json {public static void main(String[] args) {//定义对象Student stu = new Student("张三", "123456");//JavaBean对象转json字符串JSONObject jsonObject = JSONObject.fromObject(stu);System.out.println(jsonObject);//json字符串转为javaBean//定义json字符串String jsondata = "{\"username\":\"李四\", \"password\":\"123\"}";//转为json对象JSONObject json = JSONObject.fromObject(jsondata);//转为JavaBean对象Student stu2 = (Student)JSONObject.toBean(json, Student.class);System.out.println(stu2.toString());}}输出结果:List与json字符串互转先定义list集合,list转json字符串//定义list集合List list = new ArrayList();list.add(new Student("张三", "123"));list.add(new Student("李四", "456"));//list转json字符串JSONArray jsonArray = JSONArray.fromObject(list);System.out.println(jsonArray);json字符串转list//json字符串转listList list2 = new ArrayList();String jsondata = "[{\"password\":\"123\",\"username\":\"张三\"},{\"password\":\"456\",\"username\":\"李四\"}]"; JSONArray jsonArray1 = JSONArray.fromObject(jsondata);for(int i = 0; i < jsonArray1.size(); i++) {JSONObject jsonObject2 = jsonArray1.getJSONObject(i);Student stu2 = (Student)JSONObject.toBean(jsonObject2, Student.class);list2.add(stu2);}System.out.println(list2);全部代码import java.util.ArrayList;import java.util.List;import net.sf.json.JSONArray;import net.sf.json.JSONObject;public class Json {public static void main(String[] args) {//定义list集合//list转json字符串JSONArray jsonArray = JSONArray.fromObject(list);System.out.println(jsonArray);//json字符串转listList list2 = new ArrayList();String jsondata = "[{\"password\":\"123\",\"username\":\"张三\"},{\"password\":\"456\",\"username\":\"李四\"}]";JSONArray jsonArray1 = JSONArray.fromObject(jsondata);for(int i = 0; i < jsonArray1.size(); i++) {JSONObject jsonObject2 = jsonArray1.getJSONObject(i);Student stu2 = (Student)JSONObject.toBean(jsonObject2, Student.class);list2.add(stu2);}System.out.println(list2);}}运⾏结果Map与json字符串互转定义map集合,Map转json字符串//定义map集合Map map = new HashMap();map.put("1", new Student("张三", "123"));map.put("2", new Student("李四", "456"));//Map转json字符串JSONObject jsonMap = JSONObject.fromObject(map);System.out.println(jsonMap);定义字符串map集合,map集合字符串转为map//定义字符串map集合String jsondata = "{\"1\":{\"password\":\"123\",\"username\":\"张三\"},\"2\":{\"password\":\"456\",\"username\":\"李四\"}}"; //map集合字符串转为mapMap map2 = (Map)JSONObject.fromObject(jsondata);Set set = map2.keySet();//定义迭代器,迭代输出Iterator ite = set.iterator();while(ite.hasNext()) {//取出⼀个字符串对象String key = (String)ite.next();//转为json格式JSONObject jsonObject = JSONObject.fromObject(map2.get(key));//转为对象Student stu = (Student)JSONObject.toBean(jsonObject, Student.class);System.out.println(key+" "+stu);}全部代码import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;Map map = new HashMap();map.put("1", new Student("张三", "123"));map.put("2", new Student("李四", "456"));//Map转json字符串JSONObject jsonMap = JSONObject.fromObject(map);System.out.println(jsonMap);//定义字符串map集合String jsondata = "{\"1\":{\"password\":\"123\",\"username\":\"张三\"},\"2\":{\"password\":\"456\",\"username\":\"李四\"}}"; //map集合字符串转为mapMap map2 = (Map)JSONObject.fromObject(jsondata);Set set = map2.keySet();//定义迭代器,迭代输出Iterator ite = set.iterator();while(ite.hasNext()) {//取出⼀个字符串对象String key = (String)ite.next();//转为json格式JSONObject jsonObject = JSONObject.fromObject(map2.get(key));//转为对象Student stu = (Student)JSONObject.toBean(jsonObject, Student.class);System.out.println(key+" "+stu);}}}运⾏结果JSONArray与List互转定义list集合,List转型JSONArray//定义list集合List<Student> list = new ArrayList<Student>();list.add(new Student("张三", "123"));list.add(new Student("李四", "456"));//List转型JSONArrayJSONArray jsonArray = JSONArray.fromObject(list);System.out.println(jsonArray.toString());JSONArray转型List,JSONArray是⽤的上⾯的那个jsonArray变量//JSONArray转型ListList<Student> list2 = JSONArray.toList(jsonArray, new Student(), new JsonConfig());Iterator<Student> ite = list2.iterator();while(ite.hasNext()) {Student stu = ite.next();System.out.println(stu);}全部代码import java.util.ArrayList;import java.util.Iterator;import java.util.List;import net.sf.json.JSONArray;List<Student> list = new ArrayList<Student>();list.add(new Student("张三", "123"));list.add(new Student("李四", "456"));//List转型JSONArrayJSONArray jsonArray = JSONArray.fromObject(list);System.out.println(jsonArray.toString());//JSONArray转型ListList<Student> list2 = JSONArray.toList(jsonArray, new Student(), new JsonConfig()); Iterator<Student> ite = list2.iterator();while(ite.hasNext()) {Student stu = ite.next();System.out.println(stu);}}}运⾏结果JSONArray与数组互转定义数组,数组转JSONArray//定义数组boolean[] boolArray = {true, false, true};//java数组转JSONArrayJSONArray jsonArray = JSONArray.fromObject(boolArray);System.out.println(jsonArray.toString());JSONArray转java数组//JSONArray转java数组Object obj[] = jsonArray.toArray();for(Object o : obj) {System.out.print(o+"\t");}全部代码import net.sf.json.JSONArray;public class Json {public static void main(String[] args) {//定义数组boolean[] boolArray = {true, false, true};//java数组转JSONArrayJSONArray jsonArray = JSONArray.fromObject(boolArray);System.out.println(jsonArray.toString());//JSONArray转java数组Object obj[] = jsonArray.toArray();for(Object o : obj) {System.out.print(o+"\t");}}}PS:关于json操作,这⾥再为⼤家推荐⼏款⽐较实⽤的json在线⼯具供⼤家参考使⽤:更多关于java相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》及《》希望本⽂所述对⼤家java程序设计有所帮助。

使用ObjectMapper将对象转json

使用ObjectMapper将对象转json

使用ObjectMapper将对象转json在项目中使用到了ObjectMapper,故研究了一下。

现将自己的几个测试用例和大家分享一下~首先在pom.xml文件中,加入依赖: <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.8.3</version></dependency>创建一个实体类XwjUser:public class XwjUser implements Serializable {private static final long serialVersionUID = 1L;private int id;private String message;private Date sendTime;// 这里手写字母大写,只是为了测试使用,是不符合java规范的private String NodeName;private List<Integer> intList;public XwjUser() {super();}public XwjUser(int id, String message, Date sendTime) {super();this.id = id;this.message = message;this.sendTime = sendTime;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public Date getSendTime() {return sendTime;}public void setSendTime(Date sendTime) {this.sendTime = sendTime;}public String getNodeName() {return NodeName;}public void setNodeName(String nodeName) {NodeName = nodeName;}public List<Integer> getIntList() {return intList;}public void setIntList(List<Integer> intList) {this.intList = intList;}@Overridepublic String toString() {return "XwjUser [id=" + id + ", message=" + message + ", sendTime=" + sendTime + ", intList=" + intList + "]"; }}先创建一个ObjectMapper,然后赋值一些属性:public static ObjectMapper mapper = new ObjectMapper();static {// 转换为格式化的jsonmapper.enable(SerializationFeature.INDENT_OUTPUT);// 如果json中有新增的字段并且是实体类类中不存在的,不报错mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);}1、对象与json字符串、byte数组@Testpublic void testObj() throws JsonGenerationException, JsonMappingException, IOException {XwjUser user = new XwjUser(1, "Hello World", new Date());mapper.writeValue(new File("D:/test.txt"), user); // 写到文件中// mapper.writeValue(System.out, user); //写到控制台String jsonStr = mapper.writeValueAsString(user);System.out.println("对象转为字符串:" + jsonStr);byte[] byteArr = mapper.writeValueAsBytes(user);System.out.println("对象转为byte数组:" + byteArr);XwjUser userDe = mapper.readValue(jsonStr, XwjUser.class);System.out.println("json字符串转为对象:" + userDe);XwjUser useDe2 = mapper.readValue(byteArr, XwjUser.class);System.out.println("byte数组转为对象:" + useDe2);System.out.println("byte数组转为对象:" + useDe2);}运行结果:对象转为字符串:{"id" : 1,"message" : "Hello World","sendTime" : 1525163446305,"intList" : null,"nodeName" : null}对象转为byte数组:[B@3327bd23json字符串转为对象:XwjUser [id=1, message=Hello World, sendTime=Tue May 01 16:30:46 CST 2018, intList=null]byte数组转为对象:XwjUser [id=1, message=Hello World, sendTime=Tue May 01 16:30:46 CST 2018, intList=null]注意,对象转json字符串时,对象中的NodeName首字母是大写,转出来是小写2、list集合与json字符串@Testpublic void testList() throws JsonGenerationException, JsonMappingException, IOException {List<XwjUser> userList = new ArrayList<>();userList.add(new XwjUser(1, "aaa", new Date()));userList.add(new XwjUser(2, "bbb", new Date()));userList.add(new XwjUser(3, "ccc", new Date()));userList.add(new XwjUser(4, "ddd", new Date()));String jsonStr = mapper.writeValueAsString(userList);System.out.println("集合转为字符串:" + jsonStr);List<XwjUser> userListDes = mapper.readValue(jsonStr, List.class);System.out.println("字符串转集合:" + userListDes);}运行结果:集合转为字符串:[ {"id" : 1,"message" : "aaa","sendTime" : 1525164096846,"intList" : null,"nodeName" : null}, {"id" : 2,"message" : "bbb","sendTime" : 1525164096846,"intList" : null,"nodeName" : null}, {"id" : 3,"message" : "ccc","sendTime" : 1525164096846,"intList" : null,"nodeName" : null}, {"id" : 4,"message" : "ddd","sendTime" : 1525164096846,"intList" : null,"nodeName" : null} ]字符串转集合:[{id=1, message=aaa, sendTime=1525164096846, intList=null, nodeName=null}, {id=2, message=bbb, sendTime=1525164096846, intList=null, nodeName=null}, {id=3, message=ccc, sendTime= 3、map与json字符串@SuppressWarnings("unchecked")@Testpublic void testMap() {Map<String, Object> testMap = new HashMap<>();testMap.put("name", "merry");testMap.put("age", 30);testMap.put("date", new Date());testMap.put("user", new XwjUser(1, "Hello World", new Date()));try {String jsonStr = mapper.writeValueAsString(testMap);System.out.println("Map转为字符串:" + jsonStr);try {Map<String, Object> testMapDes = mapper.readValue(jsonStr, Map.class);System.out.println("字符串转Map:" + testMapDes);} catch (IOException e) {e.printStackTrace();}} catch (JsonProcessingException e) {e.printStackTrace();}}运行结果:Map转为字符串:{"date" : 1525164199804,"name" : "merry","user" : {"id" : 1,"message" : "Hello World","sendTime" : 1525164199805,"intList" : null,"nodeName" : null},"age" : 30}字符串转Map:{date=1525164199804, name=merry, user={id=1, message=Hello World, sendTime=1525164199805, intList=null, nodeName=null}, age=30}4、修改转换时的日期格式:4、修改转换时的日期格式:@Testpublic void testOther() throws IOException {// 修改时间格式mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); XwjUser user = new XwjUser(1, "Hello World", new Date());user.setIntList(Arrays.asList(1, 2, 3));String jsonStr = mapper.writeValueAsString(user);System.out.println("对象转为字符串:" + jsonStr);}运行结果:对象转为字符串:{"id" : 1,"message" : "Hello World","sendTime" : "2018-05-01 16:44:06","intList" : [ 1, 2, 3 ],"nodeName" : null}。

Object转json字符串,Object转Map,Map转Object 简单源码

Object转json字符串,Object转Map,Map转Object 简单源码

Object转json字符串,Object转Map,Map转Object简单源码public class AppObjectUtil {private static final Logger logger = LoggerFactory.getLogger(AppObjectUtil.class);private static final String CLASSNAME = AppObjectUtil.class.getName();private static final String JSON PROPERTY_FILE = CLASSNAME;private static final String ESCAPE_JSON_RESPONSE = "escapeJSONResponse";private static Boolean iCrossSiteScriptingEnabled = null;private static Boolean isEscapeNull = false;private static final String lineSeparator = System.getProperty("line.separator");;private final static String[][] ESCAPE_CHARACTERS = {{"\\", "\\\\"},{"\"", "\\\""},{"\n", "\\n"},{"\r", "\\r"},{"\t", "\\t"},{"\f", "\\f"},//{"\'", "\\\'"},};private final static String[][] CROSS_SITE_SCRIPTING_CHARACTERS = { {"&", "&amp;"},{"<", "&lt;"},{">", "&gt;"},};private static Set<Object> iProcessedObjects;/<p>Title: </p><p>Description:构造器</p>*/public AppObjectUtil() {super();}/@Title: objectToJson@Description: 把对象转换成json格式的数据@param object@return/public static String toJson(Object object,String dateFormat){ StringBuilder sb=new StringBuilder();try {iProcessedObjects = new HashSet<Object>();outputAsJson(sb, "", object,dateFormat);} catch (Exception e) {logger.error("toJson error",e);}return sb.toString();}public static String toJson(Object object){StringBuilder sb=new StringBuilder();try {iProcessedObjects = new HashSet<Object>();outputAsJson(sb, "", object);} catch (Exception e) {logger.error("toJson error",e);}return sb.toString();}/**@Title: outputAsJson@Description: 返回json格式的数据@param sb 返回json数据到StringBuilder对象中@param indent 当前indent@param object 需要转换成json格式的对象@throws Exception/private static void outputAsJson(StringBuilder sb,String indent, Object object,String dateFormat) throws Exception {if (object == null) {if(getIsEscapeNull()){return;}sb.append("null");}else if(object instanceof Date){Date date=(Date)object;sb.append(quote(AppDateAndStringUtil.format(date, dateFormat)));}else if (iProcessedObjects.contains(object) || object instanceof String || object instanceof Character || object instanceof Class || object instanceof Throwable) {sb.append(quote(object));}else if (object instanceof Boolean || object instanceof Number) { sb.append(object.toString());}else if (object instanceof Map) {iProcessedObjects.add(object);Map<?,?> map = (Map<?,?>) object;if (map.size() == 0) {sb.append("{}");}else {sb.append("{");Iterator<?> keys = map.keySet().iterator();int i=0;while (keys.hasNext()) {Object key = keys.next();if(getIsEscapeNull()&&map.get(key)==null){continue;}if(i>0){sb.append(",");}i++;sb.append(lineSeparator);sb.append(indent);sb.append("\t");sb.append(quote(key.toString()));sb.append(": ");outputAsJson(sb,indent + "\t", map.get(key),dateFormat);}sb.append(lineSeparator);sb.append(indent);sb.append("}");}iProcessedObjects.remove(object);}else if (object.getClass().isArray()) {iProcessedObjects.add(object);int length = Array.getLength(object);if (length == 0) {sb.append("[]");}else if (length == 1) {sb.append("[");if(getIsEscapeNull()&&Array.get(object, 0)==null){}else{outputAsJson(sb,indent, Array.get(object, 0),dateFormat);}sb.append("]");}else {sb.append("[");int k=0;for (int i = 0; i < length; i++) {if(getIsEscapeNull()&&Array.get(object, i)==null){continue;}if (k>0) {sb.append(",");}k++;sb.append(lineSeparator);sb.append(indent);sb.append("\t");outputAsJson(sb,indent + "\t", Array.get(object, i),dateFormat);}sb.append(lineSeparator);sb.append(indent);sb.append("\t");sb.append("]");}iProcessedObjects.remove(object);}else if (object instanceof Collection) {iProcessedObjects.add(object);outputAsJson(sb,indent, ((Collection<?>)object).toArray(),dateFormat);iProcessedObjects.remove(object);}else {iProcessedObjects.add(object);try {PropertyDescriptor properties[] = Introspector.getBeanInfo(object.getClass()).getPropertyDescriptors();Map<Object,Object> map = new HashMap<Object,Object>(properties.length);for (int i = 0; i < properties.length; i++) {Method readMethod = properties[i].getReadMethod();if (readMethod != null) {boolean isContinue=false;for(Field field:object.getClass().getDeclaredFields()){if((field.getName().substring(0,1).toLowerCase()+field.get Name().substring(1)).equals(properties[i].getName())){map.put(field.getName(), readMethod.invoke(object, (Object[])null));isContinue=true;break;}}if(!isContinue){map.put(properties[i].getName(), readMethod.invoke(object, (Object[])null));}}}outputAsJson(sb,indent, map,dateFormat);iProcessedObjects.remove(object);}catch (InvocationTargetException e) {logger.error("outputAsJson error",e);throw e;}catch (IllegalAccessException e) {logger.error("IllegalAccessException error",e);throw e;}catch (IntrospectionException e) {logger.error("IntrospectionException error",e);throw e;}}}private static void outputAsJson(StringBuilder sb,String indent, Object object) throws Exception {if (object == null) {if(getIsEscapeNull()){return;}sb.append("null");}else if (iProcessedObjects.contains(object) || object instanceof String || object instanceof Date ||object instanceof Character || object instanceof Class || object instanceof Throwable) {sb.append(quote(object));}else if (object instanceof Boolean || object instanceof Number) { sb.append(object.toString());}else if (object instanceof Map) {iProcessedObjects.add(object);Map<?,?> map = (Map<?,?>) object;if (map.size() == 0) {sb.append("{}");}else {sb.append("{");Iterator<?> keys = map.keySet().iterator();int i=0;while (keys.hasNext()) {Object key = keys.next();if(getIsEscapeNull()&&map.get(key)==null){ continue;}if(i>0){sb.append(",");}i++;sb.append(lineSeparator);sb.append(indent);sb.append("\t");sb.append(quote(key.toString()));sb.append(": ");outputAsJson(sb,indent + "\t", map.get(key));}sb.append(lineSeparator);sb.append(indent);sb.append("}");}iProcessedObjects.remove(object);}else if (object.getClass().isArray()) {iProcessedObjects.add(object);int length = Array.getLength(object);if (length == 0) {sb.append("[]");}else if (length == 1) {sb.append("[");if(getIsEscapeNull()&&Array.get(object, 0)==null){}else{outputAsJson(sb,indent, Array.get(object, 0));}sb.append("]");}else {sb.append("[");int k=0;for (int i = 0; i < length; i++) {if(getIsEscapeNull()&&Array.get(object, i)==null){ continue;}if (k>0) {sb.append(",");}k++;sb.append(lineSeparator);sb.append(indent);sb.append("\t");outputAsJson(sb,indent + "\t", Array.get(object, i));}sb.append(lineSeparator);sb.append(indent);sb.append("\t");sb.append("]");}iProcessedObjects.remove(object);}else if (object instanceof Collection) {iProcessedObjects.add(object);outputAsJson(sb,indent, ((Collection<?>)object).toArray());iProcessedObjects.remove(object);}else {iProcessedObjects.add(object);try {PropertyDescriptor properties[] = Introspector.getBeanInfo(object.getClass()).getPropertyDescriptors();Map<Object,Object> map = new HashMap<Object,Object>(properties.length);for (int i = 0; i < properties.length; i++) {Method readMethod = properties[i].getReadMethod();if (readMethod != null) {boolean isContinue=false;for(Field field:object.getClass().getDeclaredFields()){if((field.getName().substring(0,1).toLowerCase()+field.get Name().substring(1)).equals(properties[i].getName())){map.put(field.getName(), readMethod.invoke(object, (Object[])null));isContinue=true;break;}}if(!isContinue){map.put(properties[i].getName(), readMethod.invoke(object, (Object[])null));}}}outputAsJson(sb,indent, map);iProcessedObjects.remove(object);}catch (InvocationTargetException e) {logger.error("InvocationTargetException error",e);throw e;}catch (IllegalAccessException e) {logger.error("IllegalAccessException error",e);throw e;}catch (IntrospectionException e) {logger.error("IntrospectionException error",e);throw e;}}}/@Title: quote@Description: 替换掉特殊字符为html识别的字符@param object@return*/private static String quote(Object object) {String str = object.toString();for (int i = 0; i < ESCAPE_CHARACTERS.length; i++) {str = str.replaceAll(ESCAPE_CHARACTERS[i][0], ESCAPE_CHARACTERS[i][1]);}if (AppObjectUtil.isCrossSiteScriptingEnabled()) {for (int i=0; i < CROSS_SITE_SCRIPTING_CHARACTERS.length; i++) { str = str.replaceAll(CROSS_SITE_SCRIPTING_CHARACTERS[i][0], CROSS_SITE_SCRIPTING_CHARACTERS[i][1]);}}StringBuffer sb = new StringBuffer(str.length() + 2);sb.append("\"");sb.append(str);sb.append("\"");String result = sb.toString();return result;}/这个方法是检查是否支持json对于script的站点跨域问题@return true 如果支持json对于script的跨域.*/private static boolean isCrossSiteScriptingEnabled() {if (iCrossSiteScriptingEnabled == null) {iCrossSiteScriptingEnabled = new Boolean(true);try {ResourceBundle bundle = ResourceBundle.getBundle(JSON PROPERTY_FILE);String escapeJSONResponse = (String) bundle.getObject(ESCAPE_JSON_RESPONSE);iCrossSiteScriptingEnabled = new Boolean(escapeJSONResponse);} catch (MissingResourceException e) {logger.error("MissingResourceException error",e);}}return iCrossSiteScriptingEnabled.booleanValue();}/@Title: sqlStrToSqlQueryString@Description: 把sql字符串按行解析并生成合法SQL语句@param sqlStr@return@throws IOException/public static String sqlStrToSqlQueryString(String sqlStr) throws IOException {if(sqlStr==null){return null;}BufferedReader reader = new BufferedReader(new StringReader(sqlStr));String line = null;StringBuffer queryBuffer = null;while ((line = reader.readLine()) != null) {if (queryBuffer == null) {queryBuffer = new StringBuffer();}if (line.length() > 0 && !line.startsWith("--")) {queryBuffer.append(line).append(" ");if (stIndexOf(";") !=line.length()-1) {continue;}else{return queryBuffer.substring(0, queryBuffer.length()-2);}}}if(queryBuffer==null){return sqlStr;}return queryBuffer.substring(0, queryBuffer.length()-1);}/@return the isEscapeNull/public static Boolean getIsEscapeNull() {return isEscapeNull;}/@param isEscapeNull the isEscapeNull to set/public static void setIsEscapeNull(Boolean isEscapeNull) {AppObjectUtil.isEscapeNull = isEscapeNull;}/@Title: generateFieldMapFromObject@param targetClass@return@throws Exception/public static Map<String, Object> generateFieldMapFromObject(Object targetClass)throws Exception{if (targetClass == null) {return null;}Map<String, Object> fieldMap=null;PropertyDescriptor properties[] = Introspector.getBeanInfo(targetClass.getClass()).getPropertyDescriptors();for (int i = 0; i < properties.length; i++) {Method readMethod = properties[i].getReadMethod();if (readMethod != null) {if(fieldMap==null){fieldMap=new HashMap<String, Object>();}boolean isContinue=false;for(Field field:targetClass.getClass().getDeclaredFields()){if((field.getName().substring(0,1).toLowerCase()+field.getName().su bstring(1)).equals(properties[i].getName())){fieldMap.put(field.getName(), readMethod.invoke(targetClass, (Object[])null));isContinue=true;break;}}if(!isContinue){try {fieldMap.put(properties[i].getName(), readMethod.invoke(targetClass.getClass(), (Object[])null));} catch (Exception e) {}}}}return fieldMap;}/**@param targetClass@param fieldMap@return@throws Exception/public static Object generateObjectFromFieldMap(Object targetClass, Map<String, Object> fieldMap) throws Exception {if (targetClass == null) {return null;}Class<?> objectClass = null;if (targetClass instanceof Class) {objectClass = (Class<?>) targetClass;targetClass = objectClass.newInstance();} else {objectClass = targetClass.getClass();}PropertyDescriptor properties[] = Introspector.getBeanInfo(objectClass).getPropertyDescriptors();for (int i = 0; i < properties.length; i++) {Method writeMethod = properties[i].getWriteMethod();if (writeMethod != null) {Object value=null;for(Field field:objectClass.getDeclaredFields()){if((field.getName().substring(0,1).toLowerCase()+field.getName().su bstring(1)).equals(properties[i].getName())){value=fieldMap.get(field.getName());break;}}if(value==null){value=fieldMap.get(properties[i].getName());}if(value==null){for (Map.Entry<String, Object> entry : fieldMap.entrySet()) {if (entry.getValue() != null) {String setMethodName = "set" + entry.getKey().substring(0, 1).toUpperCase()+ entry.getKey().substring(1);if(writeMethod.getName().equals(setMethodName)){value=entry.getValue();}}}}if(value!=null&&(!"".equals(value.toString().trim()))){for(Class<?> c:writeMethod.getParameterTypes()){if("ng.Integer".equals(c.getName())||"int".equals(c.getName ())){writeMethod.invoke(targetClass, Integer.valueOf(value.toString()));break;}if("ng.Long".equals(c.getName())||"long".equals(c.getName ())){writeMethod.invoke(targetClass, Long.valueOf(value.toString()));break;}if("ng.Double".equals(c.getName())||"double".equals(c.getN ame())){writeMethod.invoke(targetClass,Double.valueOf(value.toString()));break;}if("ng.Float".equals(c.getName())||"float".equals(c.getName ())){writeMethod.invoke(targetClass, Float.valueOf(value.toString()));break;}if("ng.String".equals(c.getName())){writeMethod.invoke(targetClass, value.toString());break;}if("java.math.BigDecimal".equals(c.getName())){writeMethod.invoke(targetClass, new BigDecimal(value.toString().replaceAll(",", "")));break;}if("java.util.Date".equals(c.getName())&&"ng.String".equals (value.getClass().getName())){String df = "yyyy-MM-dd";if(value.toString().length()>10){df = "yyyy-MM-dd HH:mm:ss";}writeMethod.invoke(targetClass, AppDateAndStringUtil.parse(value.toString(),df));break;}try {writeMethod.invoke(targetClass, value);} catch (Exception e) {logger.error("generateObjectFromFieldMap error",e);}break;}}}}return targetClass;}}。

数据类型JSON方法,toJSON

数据类型JSON方法,toJSON

数据类型JSON⽅法,toJSONJSON ⽅法,toJSON假设我们有⼀个复杂的对象,我们希望将其转换为字符串,以通过⽹络发送,或者只是为了在⽇志中输出它。

当然,这样的字符串应该包含所有重要的属性。

我们可以像这样实现转换:let user = {name: "John",age: 30,toString() {return `{name: "${}", age: ${this.age}}`;}};alert(user); // {name: "John", age: 30}……但在开发过程中,会新增⼀些属性,旧的属性会被重命名和删除。

每次更新这种 toString 都会⾮常痛苦。

我们可以尝试遍历其中的属性,但是如果对象很复杂,并且在属性中嵌套了对象呢?我们也需要对它们进⾏转换。

幸运的是,不需要编写代码来处理所有这些问题。

这项任务已经解决了。

(JavaScript Object Notation)是表⽰值和对象的通⽤格式。

在标准中有对其的描述。

最初它是为 JavaScript ⽽创建的,但许多其他编程语⾔也有⽤于处理它的库。

因此,当客户端使⽤ JavaScript ⽽服务器端是使⽤ Ruby/PHP/Java 等语⾔编写的时,使⽤ JSON 可以很容易地进⾏数据交换。

JavaScript 提供了如下⽅法:JSON.stringify 将对象转换为 JSON。

JSON.parse 将 JSON 转换回对象。

例如,在这⾥我们 JSON.stringify ⼀个 student 对象:let student = {name: 'John',age: 30,isAdmin: false,courses: ['html', 'css', 'js'],wife: null};let json = JSON.stringify(student);alert(typeof json); // we've got a string!alert(json);/* JSON 编码的对象:{"name": "John","age": 30,"isAdmin": false,"courses": ["html", "css", "js"],"wife": null}*/⽅法 JSON.stringify(student) 接收对象并将其转换为字符串。

将[objectObject]转换成json对象

将[objectObject]转换成json对象

将[objectObject]转换成json对象这两天在做中英⽂双版的⽂件,页⾯根据语⾔读取不同的内容。

js模板⽤的是ejsjson⽂件:"components":{"pages":{"home":{"meta":{"title":"⾸页","keywords":"关键字","desc":"描述"},"title":"登录失败","button":"重新登录"}}}页⾯js代码let metaTitle = "<%= components.pages.home.meta.title %>"console.log(metaTitle)//控制台输出:⾸页但是当json⽂件中数据很多,⽽⼜都需要的情况下,显然不能⼀条⼀条赋值,最好是可以将整个对象进⾏赋值,⽐如:let home ="<%= components.pages.home %>"console.log(home)//控制台输出:[object Object]这种情况下,控制台输出的是[object Object],看不到具体的内容,于是需要将它转换成与json⽂件中格式⼀致,⽅便在js中使⽤JSONObject.fromObject()let home = "<%= components.pages.home %>"let homeObj = JSONObject.fromObject(home);console.log(homeObj)//ReferenceError: JSONObject is not defined[详细了解]JSON.stringify()let home = "<%= components.pages.home %>"let homeObj = JSON.stringify(home);console.log(homeObj)//"[object Object]"JSON.parse()let home = "<%= components.pages.home %>"let homeObj = JSON.parse(home);console.log(homeObj)//SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data[详细了解]ps:let home = "<%= components.pages.home %>" 这⾥的双引号在解析的时候,会和内部的双引号⾏程匹配,所以下⼀种办法中,将""改成了''最后提供⼀种⽬前⾃⼰代码使⽤的办法let home = JSON.parse(decodeURI('<%- encodeURI(JSON.stringify(components.pages.home)) %>'))后来发现并不需要decode和encodelet home = JSON.parse('<%- JSON.stringify(components.pages.home) %>')</div>。

JSONObject.parseObject、JSONObject.toJSONString

JSONObject.parseObject、JSONObject.toJSONString

JSONObject.parseObject、JSONObject.toJSONStringJSONObject.toJSONString在Java开发中,通常需要将⼀个实体对象转换成Json字符串,使⽤FastJson来实现这种转换⼗分⽅便,只要使⽤FastJson中JSONObject静态类提供的toJSONString()静态⽅法即可,但是如果不了解这个⽅法,很有可能就会使得转换后的Json不合⾃⼰的要求。

使⽤JSONObject把实体对象转换成Json字符串时,如果实体对象中有些属性的值为null,则默认转换后的Json字符串中是不包含这些值为null的属性。

User user = new User();user.setId(1L);user.setUsername("张三");user.setPassword("");user.setMobile(null);user.setCountry("中国");user.setCity("武汉");String jsonUser = null;/*** 指定排除属性过滤器和包含属性过滤器* 指定排除属性过滤器:转换成JSON字符串时,排除哪些属性* 指定包含属性过滤器:转换成JSON字符串时,包含哪些属性*/String[] excludeProperties = {"country", "city"};String[] includeProperties = {"id", "username", "mobile"};PropertyPreFilters filters = new PropertyPreFilters();PropertyPreFilters.MySimplePropertyPreFilter excludefilter = filters.addFilter();excludefilter.addExcludes(excludeProperties);PropertyPreFilters.MySimplePropertyPreFilter includefilter = filters.addFilter();includefilter.addIncludes(includeProperties);/*** 情况⼀:默认忽略值为null的属性*/jsonUser = JSONObject.toJSONString(user, SerializerFeature.PrettyFormat);System.out.println("情况⼀:\n" + jsonUser);/*** 情况⼆:包含值为null的属性*/jsonUser = JSONObject.toJSONString(user, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue);System.out.println("情况⼆:\n" + jsonUser);/*** 情况三:默认忽略值为null的属性,但是排除country和city这两个属性*/jsonUser = JSONObject.toJSONString(user, excludefilter, SerializerFeature.PrettyFormat);System.out.println("情况三:\n" + jsonUser);/*** 情况四:包含值为null的属性,但是排除country和city这两个属性*/jsonUser = JSONObject.toJSONString(user, excludefilter, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue);System.out.println("情况四:\n" + jsonUser);/*** 情况五:默认忽略值为null的属性,但是包含id、username和mobile这三个属性*/jsonUser = JSONObject.toJSONString(user, includefilter, SerializerFeature.PrettyFormat);System.out.println("情况五:\n" + jsonUser);/*** 情况六:包含值为null的属性,但是包含id、username和mobile这三个属性*/jsonUser = JSONObject.toJSONString(user, includefilter, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue);System.out.println("情况六:\n" + jsonUser);}JSONObject.parseObjectresult格式:{"success":"true","data":{"shop_uid":"123"}JSONObject shop_user =JSON.parseObject(result);JSON.parseObject(shop_user.getString("data")).getString("shop_uid")。

kotlin对象转json方法

kotlin对象转json方法

kotlin对象转json方法Kotlin对象转JSON方法概述JSON(JavaScript Object Notation)是一种常用的数据交换格式,它以键值对的形式存储数据,并且易于解析和生成。

在Kotlin开发中,我们经常需要将对象转换为JSON格式以便于数据传输或存储。

本文将详细介绍几种常用的Kotlin对象转JSON的方法。

方法一:使用Gson库[Gson](使用以下步骤将对象转换为JSON:1.在``文件中添加Gson依赖:implementation ':gson:'2.导入Gson库:import3.将对象转换为JSON:val gson = Gson()val json = (obj)方法二:使用库[](使用以下步骤将对象转换为JSON:1.在``文件中添加依赖:implementation ':kotlinx-serialization-jso n:'2.导入相关类和注解:importimport3.在需要转换的数据类上添加@Serializable注解:@Serializabledata class MyObject(val property1: String, val property2: Int)4.将对象转换为JSON:val json = (obj)方法三:手动构建JSON如果你不想引入额外的库,你也可以手动构建JSON字符串。

这种方法需要你自己处理字符串的拼接和转义,略显繁琐但也是一种选项。

使用以下步骤将对象转换为JSON:1.构建一个空的StringBuilder:val jsonBuilder = StringBuilder()2.逐个添加键值对:("{")("\"property1\": \"$value1\",")("\"property2\": $value2")("}")3.得到最终的JSON字符串:val json = ()总结本文介绍了几种常用的Kotlin对象转JSON的方法。

使用JSONObject.toJSONString

使用JSONObject.toJSONString

使⽤JSONObject.toJSONString 过滤掉值为空的key ⽬录JSONObject.toJSONString过滤值为空的key情况也就是这个⽅法JSONObject.toJSONString⾃动过滤空值JSONObject.toJSONString 过滤值为空的key情况public static String getJsonResult(int status, String msg, Object data){undefinedMap<String, Object> resultMap=new HashMap<String, Object>();resultMap.put("status", status);resultMap.put("msg", msg);resultMap.put("data", data);return JSONObject.toJSONString(resultMap);}public static void main(String[] args) {undefinedSystem.out.println(getJsonResult(1, "success", null));}结果{"msg":"success","status":1}从输出结果可以看出,null对应的key已经被过滤掉;这明显不是我们想要的结果,这时我们就需要⽤到fastjson的SerializerFeature序列化属性也就是这个⽅法JSONObject.toJSONString(Object object, SerializerFeature... features)public static String getJsonResult(int status, String msg, Object data){undefinedMap<String, Object> resultMap=new HashMap<String, Object>();resultMap.put("status", status);resultMap.put("msg", msg);resultMap.put("data", data);return JSONObject.toJSONString(resultMap,SerializerFeature.WriteMapNullValue);}public static void main(String[] args) {undefinedSystem.out.println(getJsonResult(1, "success", null));}结果{"msg":"success","data":null,"status":1}JSONObject.toJSONString⾃动过滤空值使⽤fastjson将javabean转string时,默认会将值为null的属性过滤掉,可通过设置SerializerFeature.WriteMapNullValue避免这种情况String value = JSONObject.toJSONString(objectData, SerializerFeature.WriteMapNullValue);以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

fastjson_object_转jsonobject原理_概述说明

fastjson_object_转jsonobject原理_概述说明

fastjson object 转jsonobject原理概述说明1. 引言1.1 概述在现代的软件开发过程中,数据对象的序列化和反序列化是非常常见的操作。

随着JSON(JavaScript Object Notation)格式的普及,越来越多的应用程序选择将数据对象转换为JSON格式进行传输和存储。

fastjson是一个Java语言编写的高性能JSON解析库,它提供了很多便捷的方法和工具来处理JSON数据,并且支持将Java对象转换为JSON格式。

本文将重点介绍fastjson库中object转JSONObject(即Java对象转为JSON 对象)的原理和实现细节,以帮助读者更加深入地理解这一过程。

我们将详细探讨fastjson库和JSONObject类的概念以及其在实际应用中所起到的作用。

1.2 文章结构本文共分为五个主要部分:引言、fastjson object 转JSONObject原理、fastjson object转JSONObject的实现细节、使用fastjson进行object转JSONObject的示例代码与步骤解析以及结论。

在引言部分,我们会简要介绍文章内容并给出文章结构,帮助读者更好地阅读和理解全文。

然后,在第二部分中,我们将介绍fastjson库和JSONObject类,并解释它们在处理JSON数据时所扮演的角色。

我们还会详细讨论object转JSONObject 的过程,以及为什么选择fastjson库作为实现工具。

接着,在第三部分中,我们将探究JSON序列化与反序列化的基本原理,并深入研究fastjson库中的相关类如JSONSerializer、JSONDeserializer、DefaultJSONParser和DefaultJSONWriter等的实现细节。

在第四部分中,我们将通过示例代码演示和步骤解析,展示如何使用fastjson 进行object转JSONObject操作。

Djangoobjects的查询结果转化为json的三种方式的方法

Djangoobjects的查询结果转化为json的三种方式的方法

Djangoobjects的查询结果转化为json的三种⽅式的⽅法第⼀种⽅式:利⽤seriallizers这个⽅法,官⽹的解释说:将复杂的数据结构变成json、xml或者其他的格式import jsonfrom django.core import serializersdef area2(request,id):data = {}province = serializers.serialize("json",AreaInfo.objects.filter(parea__isnull=True))data["data"] = json.loads(province)return JsonResponse(data,safe=False)输出的结果如下:{data: [{model: "myapp1.areainfo",fields: {title: "北京市",parea: null},pk: 110000},{model: "myapp1.areainfo",fields: {title: "天津市",parea: null},pk: 120000},{model: "myapp1.areainfo",fields: {title: "河北省",parea: null},pk: 130000},第⼆种⽅法,使⽤list,这也是三种中最简单的def area2(request,id):data = {}province = AreaInfo.objects.filter(parea__isnull=True).values()data["data"] = list(province)return JsonResponse(data,safe=False)结果如下:{data: [{id: 110000,title: "北京市",parea_id: null},{id: 120000,title: "天津市",parea_id: null},{id: 130000,title: "河北省",parea_id: null},{id: 140000,title: "⼭西省",parea_id: null},第三种⽅法⽐较原始,利⽤for循环拼装:def area2(request,id):data = AreaInfo.objects.filter(parea__isnull=True) list=[]for province in data:list.append([province.id,province.title])data={'data':list}return JsonResponse(data,safe=False)运⾏结果如下:{data: [[110000,"北京市"],[120000,"天津市"],[130000,"河北省"],[140000,"⼭西省"],[150000,"内蒙古⾃治区"],[210000,"辽宁省"],以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

python对象和json互相转换方法

python对象和json互相转换方法

python对象和json互相转换⽅法⼀、python对json的⽀持从python2.6开始,python标准库中添加了对json的⽀持,操作json时,只需要import json即可。

⼆、python对象转换成json字符串在把python对象转换成json字符串时,只需要如下知识即可:1.python对象到json字符串的转换规则:Python JSONdict objectlist, tuple arraystr, unicode stringint, long, float numberTrue trueFalse falseNone null2. 主要使⽤如下函数:该函数的具体参数(具体⽤法参见附录中链接):json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding=”utf-8”, default=None, sort_keys=False, **kw)⽰例测试代码:#构造字典python2json = {}#构造listlistData = [1,2,3]python2json["listData"] = listDatapython2json["strData"] = "test python obj 2 json"#转换成json字符串json_str = json.dumps(python2json)print json_str转换结果:{"listData": [1,2,3],"strData": "test python obj 2 json"}三、json字符串转换成python对象同理,把json字符串转换成python对象也只需具备如下知识即可:1.json字符串到python对象的转换规则:JSON Pythonobject dictarray liststring unicodenumber (int)int, longnumber (real)floatJSON Pythontrue Truefalse Falsenull None2. 主要使⽤如下函数:json.loads()该函数的具体参数(具体⽤法参见附录中链接):json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[,**kw]]]]]]]])⽰例测试代码:str = '{"listData": [1, 2, 3], "strData": "test python obj 2 json"}'json2python = json.loads(str)print type(json2python)转换结果:<type 'dict'>四、附录以上这篇python 对象和json互相转换⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

把普通对象转换成json格式的对象的简单实例

把普通对象转换成json格式的对象的简单实例

把普通对象转换成json格式的对象的简单实例1、什么叫做JSON?JSON只是⼀种数据格式(它不是⼀种新的数据类型)var obj = {name: "中国", age: 5000};//->普通格式的对象var jsonObj = {"name": "中国", "age": 5000};//->JSON格式的对象 (只要把普通对象的属性名⽤""(不能是'')包起来,这样的格式就是我们JSON格式的对象)var data = [{name: "", age: ""},{name: "", age: ""}];//->普通的⼆维数组var jsonData = [{"name": "", "age": ""},{"name": "", "age": ""}];//->JSON格式的数据2、在window浏览器对象中提供给我们操作JSON格式数据的⼀些⽅法->window.JSON->stringify:把JSON格式/普通格式的对象转换为JSON格式的字符串->parse:把JSON格式的字符串转换为JSON格式的对象var data = [{name: "李四", age: 48},{name: "张三", age: 84}];var str = JSON.stringify(data);//->'[{"name":"李四","age":48},{"name":"张三","age":84}]'console.log(JSON.parse(str));3、关于兼容的问题在IE6、IE7中window下没有JSON这个属性console.log(window.JSON); ->在IE6~7下输出的结果是undefined不兼容的情况下如何把JSON格式的字符串转换为JSON格式的对象? ->使⽤eval,但是记住最好是⼿动在字符串左右两边加上⼩括号var str = '[{"name":"李四","age":48},{"name":"张三","age":84}]';var data = eval("(" + str + ")");//->兼容的话我们使⽤JSON.parse(str)console.dir(data);以上这篇把普通对象转换成json格式的对象的简单实例就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

python3实现的对象与json相互转换操作示例

python3实现的对象与json相互转换操作示例

python3实现的对象与json相互转换操作⽰例本⽂实例讲述了python3 实现的对象与json相互转换操作。

分享给⼤家供⼤家参考,具体如下:1. python主要有三种数据类型:字典、列表、元组,其分别由花括号,中括号,⼩括号表⽰。

例如:字典:dictData={'a':12,'b':34}列表:listData=[1,2,3,4]元组:tupleData=(1,2,3,4)2. 使⽤json时,导⼊import json即可3. python对象转json字符串,主要⽤到的函数:json.dumps()。

例如:⽰例1:#!/usr/bin/env python3# -*- coding: utf-8 -*-import json"""python对象转json字符串"""# 构造字典python2json = {}# 构造listlistTest = [1,2,3]python2json["listTest"] = listTestpython2json["strData"] = "Python object to json."# 转换成json字符串jsonStr = json.dumps(python2json)print(jsonstr)结果:{"listTest": [1, 2, 3], "strData": "Python object to json."}⽰例2:#!/usr/bin/env python3# -*- coding: utf-8 -*-import json"""python对象转json字符串"""# 构造字典python2json = {}# 构造dictdictData = {'a': 123, 'b': [3,4,5], 'c': (4,5,6)}python2json["dictTest"] = dictData# 转换成json字符串jsonStr = json.dumps(python2json)print(jsonStr)结果:{"dictTest": {"a": 123, "b": [3, 4, 5], "c": [4, 5, 6]}}4.json转python对象主要使⽤的函数是:json.loads()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

前些天,我同学让我帮他看一关于list<类>转换为$.ajax的json数据的问题。

刚开始他让我看他做的我让他alert(data)结果是类的地址做成的数组。

然后我突发奇想,既然类默认调用toString的时候是打印地址,那么我可不可以重写一下toString()的那个方法,在toString()中让他返回组装的json数据,结果果然凑效。

但我不知道为什么很少人这么写,所以发表出来一是大家分享一下,二是听听大家对这种写法的意见。

People.java 人实体类* @作者:zoupengfei* @时间:2011-8-5*/package jsondemo.entity;import java.util.ArrayList;import java.util.List;public class People {private String name;private int age;private String addr;private List<Major> majors=new ArrayList<Major>();public List<Major> getMajors() {return majors;}public void setMajors(List<Major> majors) {this.majors = majors;}public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getAddr() {return addr;}public void setAddr(String addr) {this.addr = addr;}@Overridepublic String toString() {StringBuffer sb=new StringBuffer(1000);sb.append("{");sb.append("\"name\":\"");sb.append();sb.append("\",\"age\":");sb.append(this.age);sb.append(",\"addr\":\"");sb.append(this.addr);sb.append("\",\"majors\":");sb.append(this.majors);sb.append("}");return sb.toString();}}Major.java专业实体类* @作者:zoupengfei* @时间: 2011-8-5*/package jsondemo.entity;public class Major {private String name;private int level;public int getLevel() {return level;}public void setLevel(int level) { this.level = level;}public String getName() {return name;}public void setName(String name) { = name;}@Overridepublic String toString() {StringBuffer sb=new StringBuffer(1000);sb.append("{");sb.append("\"name\":\"");sb.append();sb.append("\",\"level\":");sb.append(this.level);sb.append("}");return sb.toString();}}ListToJson.javaservlet类* @作者:zoupengfei* @时间: 2011-8-5*/package jsondemo.servlet;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import jsondemo.entity.Major;import jsondemo.entity.People;public class ListToJson extends HttpServlet {public ListToJson() {super();}public void destroy() {super.destroy();}public void doGet(HttpServletRequest request, HttpServletResponseresponse)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();this.doPost(request, response);out.flush();out.close();}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();List<People> peoples=new ArrayList<People>();for(int i=0;i<100;i++){People p=new People();List<Major> majors=new ArrayList<Major>();Major m=new Major();m.setName("major1-"+i);m.setLevel(1);Major m2=new Major();m2.setName("major2-"+i);m2.setLevel(2);majors.add(m);majors.add(m2);if(i%2==0){majors.add(m);majors.add(m2);}p.setMajors(majors);p.setAddr("addr-"+i);p.setName("name-"+i);p.setAge(i);peoples.add(p);}out.print(peoples);out.flush();out.close();}public void init() throws ServletException {}}web.xml<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>ListToJson</servlet-name><servlet-class>jsondemo.servlet.ListToJson</servlet-class></servlet><servlet-mapping><servlet-name>ListToJson</servlet-name><url-pattern>/ListToJson</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>getjson.js获取ajax的json数据;(function($){$.jsonmanage={init:function(){$("#b").toggle(function (){$.ajax({url:"ListToJson",type:"post",datatype:"json",success:function(data){var d=eval("("+data+")");var table=$("#show");var th=$(" <tr><th class='head'>name</th><th class='head'>age</th><th class='head'>addr</th><th class='head'>majors</th></tr>");table.append(th);for(var i=0;i<d.length;i++){var majors=d[i].majors;var tr=$("<tr></tr>");var td1=$("<td></td>");td1.append(d[i].name);var td2=$("<td></td>");td2.append(d[i].age);var td3=$("<td></td>");td3.append(d[i].addr);var td4=$("<td></td>");var select=$("<select></select>");for(var j=0;j<majors.length;j++){varoption=$("<option></option>");option.val(majors[j].level);option.append(majors[j].name);select.append(option);}td4.append(select);if(i%2==0){tr.addClass("even");}else{tr.addClass("odd");}tr.append(td1).append(td2).append(td3).append(td4);;table.append(tr);}}});},function(){var table=$("#show");table.empty();});}}})(jQuery);showjson.jsp页面展示<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"><link rel="stylesheet" href="<%=path%>/csslib/style.css" /><script type="text/javascript" src="<%=path%>/jslib/jquery-1.4.4.min.js"></script><script type="text/javascript" src="<%=path%>/jsmanage/getjson.js"></script><script type="text/javascript">; (function($){$(document).ready(function(){$.jsonmanage.init();});})(jQuery);</script></head><body><hr width="90%" align="center" color="green" size="20">[align=center]<input type="button" value="onclick to make the json data show out!" id="b"></input>[/align][align=center]<table id="show" width="60%" cellpadding="0" cellspacing="0" class="sortable"></table>[/align]</body></html>。

相关文档
最新文档