json字符串、json对象、Java代码之间的相互转换

一、JSONObject.fromObject

将json字符串转换成json对象再转换成Map,这样可以很方便的取出value值供后台使用。

在实际开发中很实用,具体实现代码如下所示:

Map<String, String> cusPara = (Map<String, String>) JSONObject.fromObject(para);

String para = "{"wftypeid":"2","module":"1","wftypename":"日常工作","creater":"系统管理员","detail":"35","createrid":"1","receivetime":"2018-09-03 10:08:55"}";
Map<String, String> cusPara = (Map<String, String>) JSONObject.fromObject(para);
System.out.println("--cusPara = " + cusPara);
for (Map.Entry<String, String> entry : cusPara.entrySet()) { 
    System.out.println("--Key = " + entry.getKey() + ", Value = " + entry.getValue()); 
}
String push_module = cusPara.get("module");
String push_person = cusPara.get("creater");
String push_time = cusPara.get("receivetime");

para是一个json字符串,通过JSONObject.fromObject(para)转换成json对象,然后通过强制类型转换(Map<String,String>)将其转换成Map对象,方便获取value。

二、json与对象的转换

JSONObject jo = JSONObject.fromObject(map);

后台的封装数据,java代码转换成json。

1. List集合转换成json代码

List list = new ArrayList();

list.add( "first" );

list.add( "second" );

JSONArray jsonArray2 = JSONArray.fromObject( list );

2. Map集合转换成json代码

Map map = new HashMap();

map.put("name", "json");

map.put("bool", Boolean.TRUE);

map.put("int", new Integer(1));

map.put("arr", new String[] { "a", "b" });

map.put("func", "function(i){ return this.arr[i]; }");

JSONObject json = JSONObject.fromObject(map);

3. Bean转换成json代码

JSONObject jsonObject = JSONObject.fromObject(new JsonBean());

4. 数组转换成json代码

boolean[] boolArray = new boolean[] { true, false, true };

JSONArray jsonArray1 = JSONArray.fromObject(boolArray);

5. 一般数据转换成json代码

JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']" );

三、json字符串和json对象的互转

JSON字符串:
var str1 = '{ "name": "cxh", "sex": "man" }'; 
JSON对象:
var str2 = { "name": "cxh", "sex": "man" };

一、JSON字符串转换为JSON对象

要使用上面的str1,必须使用下面的方法先转化为JSON对象:

//由JSON字符串转换为JSON对象

var obj = eval('(' + str + ')');

或者

var obj = str.parseJSON(); //由JSON字符串转换为JSON对象

或者

var obj = JSON.parse(str); //由JSON字符串转换为JSON对象

然后,就可以这样读取:

Alert(obj.name);

Alert(obj.sex);

特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。

二、可以使用toJSONString()或者全局方法JSON.stringify()将JSON对象转化为JSON字符串。

例如:

var last=obj.toJSONString(); //将JSON对象转化为JSON字符

或者

var last=JSON.stringify(obj); //将JSON对象转化为JSON字符

alert(last);

注意:

上面的几个方法中,除了eval()函数是js自带的之外,其他的几个方法都来自json.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个方法都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()方法,则说明您的json包版本太低。

猜你喜欢

转载自blog.csdn.net/qq_37811638/article/details/82345061
今日推荐