当前位置:首页>正文

“JsonObject”如何转成“Map” 怎么把json字符串转换map

2023-07-06 03:24:25 互联网 未知

“JsonObject”如何转成“Map”?

首先,你先确认你的字符串是否是json格式的,如果是json格式,那你可以使用Gson.jar或json-lib-xx-jdk.jar两个包来自动解析解析。
使用Gson更简单些,只需要导入一个包就可以,但是他如果使用Object解析到int型的话或自动转成double型,需要定义一个准确的类来解析,不能直接使用Object。示例:
Gson gson = new Gson()
Map map = new HashMap()
map = gson.fromJson(str, map.getClass())
GSON.jar包的下载地址:http://grepcode.com/snapshot/repo1.maven.org/maven2/com.google.code.gson/gson/2.2.使用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 = (Map)jb
如果你的字符串不是json格式,那你就需要自己使用split分割字符串,例如:
String str = "color:red|font:yahei|width:800|height:300"
String[] strs = str.split("\|")
Map m = new HashMap()
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

import java.util.HashMap
import java.util.Iterator
import java.util.Map
import net.sf.json.JSONObject
public Map toMap(Object object)
{Map data = new HashMap()    
// 将json字符串转换成jsonObject

JSONObject jsonObject = JSONObject.fromObject(object)

Iterator ite = jsonObject.keys()    
// 遍历jsonObject数据,添加到Map对象

while (ite.hasNext())
{String key = ite.next().toString()

String value = jsonObject.get(key).toString()

data.put(key, value)        
// 或者直接将 jsonObject赋值给Map

// data = jsonObject

return data
}

java将 json数组转map

首先你的 [{"key":"1"},{"key":"2"}] 是个 json 数组格式

如果是简单的json 格式, 比如 "{"key1":"1","key2":"2"}"
那么你可以使用 下面的示例:
  public static void main(String[] args){
        String jsonString = "{"key1":"1","key2":"2"}"
        //String str = "[{"key1":"1"},{"key2":"2"}]"
        Map map = toMap(jsonString)
        for (Map.Entry entry : map.entrySet()){
            String key = entry.getKey()
            Object value = entry.getValue()
            System.out.println(key   ":"   value)
        }
    }
    @SuppressWarnings("unchecked")
    public static  Map toMap(String json){
        Map map = new HashMap()
        JSONObject jsonObject = JSONObject.fromObject(json, new JsonConfig())
        Iterator keys = jsonObject.keys()
        while (keys.hasNext()){
            String key = keys.next()
            Object value = jsonObject.get(key)
            map.put(key, (T) value)
        }
        return map
    }

执行结果:




你这种数组格式, 转成 map 那么 同名的key 会覆盖的....

json-lib怎么将一个json串转换为map

把map转成json的步骤: 1、需要一些jar包:json-lib-2.4-jdk15.jar、ezmorph-1.0.6.jar、commons-logging.jar、commons-lang.jar、commons-collections.jar、commons-beanutils.jar。 2、把Map转换成json, 要使用jsonObject对象: Map map = ne...