Conversiones relacionadas con Java-json, conversión entre JSONObject y clase/mapa de entidad, conversión entre List/List<map> y JSONArray, obtención de valor clave en JSONObject, conversión de cadenas, etc.

La experiencia del blog es el desarrollo de Java. Las conversiones relacionadas con JSON, la adquisición de valor, etc. se utilizan a menudo en el desarrollo diario, pero a veces todavía lo olvidamos o encontramos algunos problemas extraños. Utilice este registro para recordarlo ~ actualizado de vez en cuando ~

1. JSONObjeto relacionado

Conversión entre clase de entidad y JSONObject

//实体类转为JSONObject
JSONObject jsonObject = JSON.toJSON(entity);
JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(entity));
//JSONObject转为实体类
Entity entity = JSONObject.toJavaObject(jsonObject, Entity.class);

Conversión de mapas y JSONObject

//Map转为JSONObject
JSONObject jsonObject = JSON.toJSON(map);
JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(map));
//JSONObject转为Map
Map<String, Object> map = JSONObject.toJavaObject(jsonObject, Map.class);

Cadena a JSONObject

JSONObject  jsonObject = JSONObject.fromObject(stringText);

Los valores NULL no se filtran al convertir clases de entidad en cadenas JSON

String jsonStr = JSONObject.toJSONString(VO,SerializerFeature.WriteMapNullValue);

Obtener el valor clave en JSONObject

JSONObject baseInfo = jsonObject.getJSONObject("detail");
// 遍历基本信息
for (Map.Entry<String, Object> entry : baseInfo.entrySet()) {
    
    
    System.out.println(entry.getKey() + " : " + entry.getValue());
}

2. Relacionado con JSONArray

Conversión de lista y JSONArray

//List转为JSONArray
JSONArray jsonArray = JSON.toJSON(list);
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(list));
//JSONArray转为List
List<Entity> list = JSONObject.parseArray(jsonArray.toJSONString(), Entity.class);

Conversión de lista <Map<>> y JSONArray

//List<Map<>>转为JSONArray
JSONArray jsonArray = JSON.toJSON(maps);
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(maps));

//JSONArray转List<hashmap>
JSONArray array = jsonObject.getJSONArray("array");
List<HashMap> objects = JSONObject.parseArray(JSONObject.toJSONString(array),HashMap.class);

//JSONArray转为List<Map<>>
List<Map<>> maps = JSONObject.parseArray(jsonArray.toJSONString(), Map.class);

//JSONArray转为List<Map<>>方法2
List<Map<String, String>> list=new ArrayList<Map<String, String>>();               
JSONArray jsonArr=JSONObject.fromObject(jsonStr).getJSONArray("data");
if(jsonArr!=null && jsonArr.size()>0){
    
    
	for(int i=0;i<jsonArr.size();i++){
    
    
		JSONObject jsonObj=(JSONObject) jsonArr.get(i);
		Map<String, String> map = new HashMap<String, String>();
		for (Iterator<?> iter = jsonObj.keys(); iter.hasNext(); ) {
    
    
			String key = (String) iter.next();
			String value = jsonObj.get(key).toString();
			map.put(key, value);
		}
		list.add(map);
    }

JASONArray a JSONObject

JSONArray result_type = new JSONArray();
StringBuffer selectType = new StringBuffer();
selectType.append(" select id from table");
result_type = jdbcTemp.queryForJSONArray(selectType.toString());
JSONObject jsonObject = new JSONObject();
for (int i = 0; i < result_type.size(); i++) {
    
    
    JSONObject jsonObject = (JSONObject) result_type.get(i);
}
return jsonObject;

Resuelva el problema: la conversión de JASONArray a JSONObject solo devuelve el último JSONObject

StringBuilder builder = new StringBuilder(); 

//业务代码

//转换
for (int i = 0; i < jsonArray.size(); i++) {
    
    
    jsonObject = (JSONObject) jsonArray.get(i);
    builder.append(jsonObject).append("\n"); 
} 
//业务代码

return builder.toString();

Cadena a JSONArray

JSONArray jsonArray = JSONArray.fromObject(stringText);

3. Relacionado con el objeto

Objeto: JSONObjeto

JSONObject json = (JSONObject) JSONObject.toJSON(list.get(0));

Objeto a listar

	//Object转List<String>
	public static List<String> objToList1(Object obj) throw CoreException{
    
    
		List<String> result = new ArrayList<String>();
    	if (obj instanceof ArrayList<?>) {
    
    
	        for (Object o : (List<?>) obj) {
    
    
	            result.add(String.class.cast(o));
	        }
        }
        return result;
	}
    //通用工具类
  	public static <T> List<T> objToList(Object obj, Class<T> cla) throw CoreException{
    
    
		List<T> list = new ArrayList<T>();
    	if (obj instanceof ArrayList<?>) {
    
    
	        for (Object o : (List<?>) obj) {
    
    
	            list.add(cla.cast(o));
	        }
	        return list;
        }
        return null;
	}
    //调用
 	List<String> list = objToList(obj,String.class);
	//注意:int.class = Integer.TYPE !=Integer.class

Supongo que te gusta

Origin blog.csdn.net/weixin_44436677/article/details/131269751
Recomendado
Clasificación