Bean、List、Map、Array、String与JSON字符串的相互转换


import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.commons.lang3.StringUtils;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

/**
* JSONUtil.java
*
* Date: 2013-7-19 下午3:30:55
* Version: 1.0
*
* Copyright(c) 2013 by Highershine
*/
/**
* <p>
* 类/接口 定义
* </p>
*
* 类/接口作用...
*
* @author starwing
*
*/
public class JSONUtil {
private static JSONParser parser;

/**
* 将Json字符串解析为Map
* @param jsonString
* @return
* @throws ParseException
*/
@SuppressWarnings("unchecked")
public static Map<String,Object> parseJsonToMap(String jsonString)
throws ParseException{
Map<String,Object> result = null;
if(parser == null){
parser = new JSONParser();
}
if(!StringUtils.isEmpty(jsonString)){
result = (Map<String,Object>)parser.parse(jsonString);
}
return result;
}

/**
* 将json字符串解析为List
* @param jsonString
* @return
* @throws ParseException
*/
@SuppressWarnings("unchecked")
public static List<Object> parseJsonToList(String jsonString)
throws ParseException{
List<Object> result = null;
if(parser == null){
parser = new JSONParser();
}
if(!StringUtils.isEmpty(jsonString)){
try{
result = (List<Object>)parser.parse(jsonString);
}catch(ParseException e){
System.out.println(e.getMessage());
throw e;
}
}
return result;
}
/**
* 将Json字符串转换为Map
* @param jsonString
* @return
* @throws ParseException
*/
public static Map<String, String> JSONParser(String jsonString)
throws ParseException {
JSONParser parser = new JSONParser();
JSONArray jsonArray = (JSONArray) parser.parse(jsonString);

HashMap<String, String> map = new HashMap<String, String>();
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject obj = (JSONObject) jsonArray.get(i);
// if (!"".equals(obj.get("value").toString().trim())) {
map.put(obj.get("name").toString(), obj.get("value").toString());

// }
}
return map;
}

/**
* 将对象转换为Json字符串
* <br>主方法
* @param obj
* @return
*/
@SuppressWarnings("unchecked")
public static String objectTojson(Object obj) {
StringBuilder json = new StringBuilder();
if (obj == null) {
json.append("\"\"");
} else if (obj instanceof String || obj instanceof Integer
|| obj instanceof Float || obj instanceof Boolean
|| obj instanceof Short || obj instanceof Double
|| obj instanceof Long || obj instanceof BigDecimal
|| obj instanceof BigInteger || obj instanceof Byte) {
json.append("\"").append(stringTojson(obj.toString())).append("\"");
} else if (obj instanceof Object[]) {
json.append(arrayTojson((Object[]) obj));
} else if (obj instanceof List) {
json.append(listTojson((List<?>) obj));
} else if (obj instanceof Map) {
json.append(mapTojson((Map<?, ?>) obj));
} else if (obj instanceof Set) {
json.append(setTojson((Set<?>) obj));
} else {
json.append(beanTojson(obj));
}
return json.toString();
}

/**
* Map转换为Json字符串
*<p> 注意:Value值会被转成String类型。
* @param map
* @return
*/
public static String mapTojson(Map<?, ?> map) {
StringBuilder json = new StringBuilder();
json.append("{");
if (map != null && map.size() > 0) {
for (Object key : map.keySet()) {
json.append(objectTojson(key));
json.append(":");
json.append(objectTojson(map.get(key)));
json.append(",");
}
json.setCharAt(json.length() - 1, ‘}‘);
} else {
json.append("}");
}
return json.toString();
}

/**
* 数组转换为Json字符串
* @param array
* @return
*/
public static String arrayTojson(Object[] array) {
StringBuilder json = new StringBuilder();
json.append("[");
if (array != null && array.length > 0) {
for (Object obj : array) {
json.append(objectTojson(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ‘]‘);
} else {
json.append("]");
}
return json.toString();
}

/**
* List转换为Json字符串
* @param list
* @return
*/
public static String listTojson(List<?> list) {
StringBuilder json = new StringBuilder();
json.append("[");
if (list != null && list.size() > 0) {
for (Object obj : list) {
json.append(objectTojson(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ‘]‘);
} else {
json.append("]");
}
return json.toString();
}

/**
* SET集合转换为json字符串
* @param set
* @return
*/
public static String setTojson(Set<?> set) {
StringBuilder json = new StringBuilder();
json.append("[");
if (set != null && set.size() > 0) {
for (Object obj : set) {
json.append(objectTojson(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ‘]‘);
} else {
json.append("]");
}
return json.toString();
}

/**
* Bean实体转换为Json字符串
* @param bean
* @return
*/
public static String beanTojson(Object bean) {
StringBuilder json = new StringBuilder();
json.append("{");
PropertyDescriptor[] props = null;
try {
props = Introspector.getBeanInfo(bean.getClass(), Object.class)
.getPropertyDescriptors();
} catch (IntrospectionException e) {
}
if (props != null) {
for (int i = 0; i < props.length; i++) {
try {
String name = objectTojson(props[i].getName());
String value = objectTojson(props[i].getReadMethod()
.invoke(bean));
json.append(name);
json.append(":");
json.append(value);
json.append(",");
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
json.setCharAt(json.length() - 1, ‘}‘);
} else {
json.append("}");
}
return json.toString();
}

/**
* 字符串转为Json字符串
* @param s
* @return
*/
public static String stringTojson(String s) {
if (s == null)
return "";
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
switch (ch) {
case ‘"‘:
sb.append("\\\"");
break;
case ‘\\‘:
sb.append("\\\\");
break;
case ‘\b‘:
sb.append("\\b");
break;
case ‘\f‘:
sb.append("\\f");
break;
case ‘\n‘:
sb.append("\\n");
break;
case ‘\r‘:
sb.append("\\r");
break;
case ‘\t‘:
sb.append("\\t");
break;
case ‘/‘:
sb.append("\\/");
break;
default:
if (ch >= ‘\u0000‘ && ch <= ‘\u001F‘) {
String ss = Integer.toHexString(ch);
sb.append("\\u");
for (int k = 0; k < 4 - ss.length(); k++) {
sb.append(‘0‘);
}
sb.append(ss.toUpperCase());
} else {
sb.append(ch);
}
}
}
return sb.toString();
}

}

Bean、List、Map、Array、String与JSON字符串的相互转换,布布扣,bubuko.com

时间: 2024-10-25 02:32:29

Bean、List、Map、Array、String与JSON字符串的相互转换的相关文章

Map&lt;String,String&gt;转换json字符串

文前一注:注意jar包的导入和引入. 下面是代码实现: 1 import java.util.HashMap; 2 import java.util.Map; 3 import net.sf.json.JSONObject; 4 5 public class testJson { 6 7 public static void main(String[] args) { 8 testPingping(); 9 } 10 //里面的任务都是我的好友,希望他们不要看到 ^_^^_^^_^ 11 pub

c# string.format json字符串 formatException错误

正常字符串的string.format是没问题的但是在拼接json的字符串的时候因为里面包含了 {}  花括号 里面又嵌套了 {0} {1} {2}这些要替换的关键字 所以会报错. 经过百度. 字符串中包含{或者},则需要用{{ 来代替字符 {,用}} 代替 } string strTemplate = "{{\"C0061_Code\":\"{0}\",\"C0061_Name\":\"{1}\",\"C

利用new Gson()的toJson方法将map对象转成json字符串

1 package mpsm.mcpsm.operation.demandInfoLoad.service; 2 3 import java.sql.ResultSet; 4 import java.text.DecimalFormat; 5 import java.util.ArrayList; 6 import java.util.HashMap; 7 import java.util.List; 8 9 import mpsm.mcpsm.operation.demandInfoLoad.

JavaScript对象与JSON字符串的相互转换

1.eval函数 JSON文本转换为对象 为了将JSON文本转换为对象,可以使用eval函数.eval函数调用JavaScript编辑器.由于JSON是JavaScript的子集,因此编译器将正确的解析文本并产生对象结构.文本必须括在括号中避免产生JavaScript的语法歧义. var obj = eval('(' + JSONTest + ')'); eval函数非常快速.它可以编译执行任何JavaScript程序,因此产生了安全性问题.当使用可信任与完善的源代码时才可以使用eval函数.这

JSON字符串转换成Map对象

页面向后台action传递一个json字符串,需要将json字符串转换成Map对象 import java.util.HashMap; import java.util.Iterator; import java.util.Map; import net.sf.json.JSONObject; public Map<String, String> toMap(Object object) { Map<String, String> data = new HashMap<Str

fastjson将json字符串转化成map的五种方法

fastjson将json字符串转化成map的五种方法 复制代码 1 package com.zkn.newlearn.json; 2 3 import com.alibaba.fastjson.JSON; 4 import com.alibaba.fastjson.JSONObject; 5 import java.util.Map; 6 7 /** 8 * JSON字符串自动转换 9 * 10 */ 11 public class JsonToMapTest01 { 12 13 public

JSON字符串转换为Map

转自:https://blog.csdn.net/zknxx/article/details/52281220 本文是利用阿里巴巴封装的FastJSON来转换json字符串的.例子如下: 1 import com.alibaba.fastjson.JSON; 2 import com.alibaba.fastjson.JSONObject; 3 import java.util.Map; 4 5 /** 6 * JSON字符串自动转换 7 * Created by zkn on 2016/8/2

JSON数组对象和JSON字符串的转化,map和JSON对象之间的转化

这种用法包括前端和后端: 前端: 1. 转化为JSON对象方便操作 var jsonObj = JSON.parse(str); 得到的是一个json数组对象,可以通过 for (var p in jsonObj){} 来遍历数组中的每个对象,其中p表示key,jsonObj[p]表示key所对应的值. 2. 转化为字符串 var jsonStr = JSON.stringify(jsonObj) 后端:需要用到阿里的fastjson包(其他的用法可以参考博客:https://blog.csdn

前台jquery+ajax+json传值,后台处理完后返回json字符串,如何取里面的属性值?(不用springmvc注解)

一.取属性值 前台页面: function select(id){ alert("hfdfhdfh"+id); $.ajax({ url:"selectByid.jsp", datatype:'json', data:{id:id}, // 发送数据 error:function(data){ alert("出错了,没有这个学生!!"); }, success:function(data){ alert(data); var json = eva