json转map保留null(json转为map)

json转map保留null(json转为map)首先 你先确认你的字符串是否是 json 格式的 如果是 json 格式 那你可以使用 Gson jar 或 json lib xx jdk jar 两个包来自动解析解析 使用 Gson 更简单些 只需要导入一个包就可以 但是他如果使用 Object 解析到 int 型的话或自动转成 double 型 需要定义一个准确的类来解析 不能直接使用 Object 示例 Gson gson new Gson Map

大家好,我是讯享网,很高兴认识大家。



首先,你先确认你的字符串是否是json格式的,如果是json格式,那你可以使用Gson.jar或json-lib-xx-jdk.jar两个包来自动解析解析。

使用Gson更简单些,只需要导入一个包就可以,但是他如果使用Object解析到int型的话或自动转成double型,需要定义一个准确的类来解析,不能直接使用Object。示例:

Gson gson = new Gson();

Map

 map &#61; new HashMap (); </p> 

讯享网

map = gson.fromJson(str, map.getClass());

GSON.jar包的下载地址:

使用json-lib包的话需要导入更多的包,需要额外导入commons-lang.jar、ezmorph-1.0.4.jar、commons-logging-1.1.1.jar、commons-collections.jar、commons-beanutils.jar这5个包。解析示例如下:

JSONObject jb = JSONObject.fromObject(str);

Map

讯享网 map &#61; (Map )jb; </p> 

如果你的字符串不是json格式,那你就需要自己使用split分割字符串,例如:

String str = “color:red|font:yahei|width:800|height:300”;

String[] strs = str.split(“|”);

Map

 m &#61; new HashMap (); </p> 

for(String s:strs){

String[] ms = s.split(“:”);

m.put(ms[0], ms[1]);

JSONObject json = JSONObejct.fromObject(map)

上面的方法转出来的结果为map的key.toString()和value.toString() 的结果对。

SomeClass 是你的自定义类,你没有重写toString方法,默认调用的是Object类的toString方法。

你重写下SomeClass 的toString方法,输出你想要的结果,然后,转出来的JSON就不再是内存地址了

json转map
讯享网

用JSONUtil.deserialize()就可以了,范例:

import org.apache.struts2.json.JSONUtil;

public class JsonToJava {

public static void main(String[] args) {

try {

String s = “{”D“:[”a“,”b“],”A“:[”a“,”b“],”B“:[”a“,”b“],”C“:[”a“,”b“]}”;

Object o = JSONUtil.deserialize(s);

System.out.println(o.getClass() + “: ” + o);

} catch (Exception e) {

e.printStackTrace(System.out);

}

}

}1. import java.util.hashmap;

2. import java.util.iterator;

3. import java.util.map;

4. import net.sf.json.jsonobject;

5. public map tomap(object object)

6. {map data = new hashmap();

7. // 将json字符串转换成jsonobject

8. jsonobject jsonobject = jsonobject.fromobject(object);

9. iterator ite = jsonobject.keys();

10. // 遍历jsonobject数据,添加到map对象

11. while (ite.hasnext())

12. {string key = ite.next().tostring();

13. string value = jsonobject.get(key).tostring();

14. data.put(key, value);

15. // 或者直接将 jsonobject赋值给map

16. // data = jsonobject;

17. return data;

}import org.apache.struts2.json.JSONUtil;

public class JsonToJava {

public static void main(String[] args) {

try {

String s = “{”D“:[”a“,”b“],”A“:[”a“,”b“],”B“:[”a“,”b“],”C“:[”a“,”b“]}”;

Object o = JSONUtil.deserialize(s); //转化

System.out.println(o.getClass() + “: ” + o); //输出转化结果

Object o1 = ((HashMap)o).get(“A”);

System.out.println(“A = ” + o1.getClass() + “: ” + o1); // 输出转化后的HashMap中“A”属性

} catch (Exception e) {

e.printStackTrace(System.out);

}

}

输出结果:

class java.util.HashMap: {D=[a, b], A=[a, b], B=[a, b], C=[a, b]}

A = class java.util.ArrayList: [a, b]


小讯
上一篇 2025-05-15 11:22
下一篇 2025-04-15 14:28

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/203728.html