`
Franciswmf
  • 浏览: 800269 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

JSON数据交换、jsonString转jsonObject或jsonArray、json转string方法;string转json;

 
阅读更多
【JSON数据交换格式在系统间数据调用的处理】
public class Demo {
	
	public static void main(String[] args) {
		JSONArray tempJsonArray = null;
		Student student = null;//学生信息
		String interfaceName = "GetStudentScoreInfo";
		String targetAttribute = "studentInfo";
		//调用外部系统接口
		JSONObject remoteReturnJsonObject = studentService.getStudentScoreInfo(interfaceName, targetAttribute);
		boolean successFlag = remoteReturnJsonObject.getBoolean("success");// 调用接口是否成功
		if (successFlag) {
			tempJsonArray = parseTargetJsonObject(remoteReturnJsonObject,targetAttribute);
			if (null!=tempJsonArray&& tempJsonArray.size() > 0) {
				JSONObject tempJSONObject = (JSONObject) tempJsonArray.get(0);
				student = JSONObject.parseObject(tempJSONObject.toString(),Student.class);//映射为学生信息
			}
		}
	}

	/*
	 * 处理外部系统返回的JSON数据
	 */
	private  static JSONArray parseTargetJsonObject(JSONObject targetJsonObject, String method) {
		JSONArray jsonArray = null;//返回对象
		JSONObject jsonObject = null;
		if (targetJsonObject != null) {
			jsonObject = targetJsonObject.getJSONObject("responseData");
		}
		if (jsonObject != null) {
			jsonArray = jsonObject.getJSONArray(method);
		}
		return jsonArray;
	}
}

【jsonString转jsonObject或jsonArray】
package com.demo;
import java.lang.reflect.Field;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
public class Demo {
	public static void main(String[] args) throws Exception, Exception {
	String sourceJsonStr="{\"student\":[{\"countryName\":\"ZG\",\"departmentName\":\"Computer\",\"gradeName\":\"g3\",\"className\":\"c4\"},{\"countryName\":\"MG\",\"departmentName\":\"Electronic\",\"gradeName\":\"g2\",\"className\":\"c1\"},{\"countryName\":\"DG\",\"departmentName\":\"Math\",\"gradeName\":\"g4\",\"className\":\"c3\"}]}";
		//任务一、取数据集中的某个属性值
		JSONObject jsonObject=JSONObject.parseObject(sourceJsonStr);
		List<?> studentList=JSONArray.parseArray(jsonObject.getString("student"), Student.class);
		Object student=studentList.get(0);
		String departmentValue = org.apache.commons.beanutils.BeanUtils.getProperty(student, "departmentName");
		System.out.println("系别departmentName="+departmentValue);
		//任务二、转换数据集
		//编码映射处理前,打印studentList
    	for (Object stu : studentList) {
			System.out.println("输出stu="+stu.toString());
		}
		//字段值对应的编码映射
		String jsonObjectStr="{\"countryName\":{\"ZG\":\"中国\",\"MG\":\"美国\",\"DG\":\"德国\",\"ELSG\":\"俄罗斯\"},\"departmentName\":{\"Chinese\":\"中文系\",\"Foreign\":\"外文系\",\"Computer\":\"计算机系\",\"Electronic\":\"电子工程系\",\"Physics\":\"物理系\",\"Math\":\"数学系\"},\"gradeName\":{\"g1\":\"大学一年级\",\"g2\":\"大学二年级\",\"g3\":\"大学三年级\",\"g4\":\"大学四年级\"},\"className\":{\"c1\":\"1班\",\"c2\":\"2班\",\"c3\":\"3班\",\"c4\":\"4班\"}}";
        Map<String, String> targetMap = null;
        TypeReference<LinkedHashMap<String, String>> typeReference = new TypeReference<LinkedHashMap<String, String>>() {
        };
        if (StringUtils.isNotBlank(jsonObjectStr)) {
        	targetMap = JSONObject.parseObject(jsonObjectStr, typeReference);//Map<String, String>
        }
        if (null!=targetMap && targetMap.size() > 0) {
        	for (Object stu : studentList) {
	            for (Iterator<String> it = targetMap.keySet().iterator(); it.hasNext();) {
	            	String key = it.next();//如 department
	            	String keyJsonObjectValue = targetMap.get(key);//如 {"Electronic":"电子工程系","Foreign":"外文系","Physics":"物理系","Math":"数学系","Computer":"计算机系","Chinese":"中文系"}
//	            	System.out.println("对象名称key="+key);
//	            	System.out.println("对象值jsonObjectValue="+jsonObjectValue);
	            	String keyValue = org.apache.commons.beanutils.BeanUtils.getProperty(stu, key);//原始字符串里属性key对应的值 如:Computer
	                LinkedHashMap<String, String> codeMap = JSONObject.parseObject(keyJsonObjectValue, typeReference);//某种属性编码映射Map LinkedHashMap<String, String>
	                //
	                Field field = stu.getClass().getDeclaredField(key);
	                field.setAccessible(true);//不加该句将报错:can not access a member of class com.demo.Student with modifiers "private"
	                field.set(stu, codeMap.get(keyValue));
	            }
        	}
        	System.out.println("编码映射处理结束。。。");
        	//编码映射处理后,打印studentList
        	for (Object stu : studentList) {
				System.out.println("输出stu="+stu.toString());
			}
        }
	}
}


效果图:

二、
//json转string
function jsonToString (obj){   
        var THIS = this;    
        switch(typeof(obj)){   
            case 'string':   
                return '"' + obj.replace(/(["\\])/g, '\\$1') + '"';   
            case 'array':   
                return '[' + obj.map(THIS.jsonToString).join(',') + ']';   
            case 'object':   
                 if(obj instanceof Array){   
                    var strArr = [];   
                    var len = obj.length;   
                    for(var i=0; i<len; i++){   
                        strArr.push(THIS.jsonToString(obj[i]));   
                    }   
                    return '[' + strArr.join(',') + ']';   
                }else if(obj==null){   
                    return 'null';   
  
                }else{   
                    var string = [];   
                    for (var property in obj) string.push(THIS.jsonToString(property) + ':' + THIS.jsonToString(obj[property]));   
                    return '{' + string.join(',') + '}';   
                }   
            case 'number':   
                return obj;   
            case false:   
                return obj;   
        }   
    }

===========================================================
String arr=new String(request.getParameter("arr").getBytes("ISO8859-1"), "UTF-8");
var arr2='<%=arr%>';
		var list=eval('('+arr2+')');//用eval函数将json转化为对象  
		alert(list[0].fileName);
		alert(list[1].fileName);
		alert(list[2].fileName);
  • 大小: 19.9 KB
分享到:
评论

相关推荐

    Jackson将json string转为Object,org.json读取json数组的实例

    使用ObjectMapper可以轻松地将JSON数据转换为Java对象,而org.json库的JSONArray和JSONObject类则提供了处理JSON数组和对象的方法。在实际应用过程中,需要根据具体的数据结构和需求来选择合适的方法,并注意异常...

    用于java对象与json对象间的相互转换(net.sf.json.JSONObject)

    这段代码会将`jsonString`解析成一个`JSONObject`,你可以通过字段名访问其中的数据,如`jsonObject.getString("name")`来获取`name`的值。 ### 2. 将JSON字符串转换为Java对象 `JSONObject`提供了一种将JSON数据...

    解析json的工具类,包括JSONObject、JSONArray、JSONException、JSONString等

    这个库提供了几个核心类,如JSONObject、JSONArray、JSONException和JSONString,帮助开发者方便地进行JSON的解析、创建和序列化。 **JSONObject**: JSONObject是表示JSON对象的类,它由键值对组成,键总是字符串...

    JSON字符串转换JSONObject和JSONArray的方法

    一.下载json 具体到http://www.json.org/上找Java-json下载,并把其放到项目源代码中,这样就可以引用其类对象了 ...JSONObject myJsonObject = new JSONObject(jsonMessage); //获取对应的值 value1 = myJsonObject.g

    net.sf.json.JSONObject实现Object对象与Json字符串的互转

    在Java开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,被广泛用于前后端数据传输。`net.sf.json.JSONObject`是开源库Apache Commons Lang中的一个类,它提供了解决Java对象与JSON字符串...

    org.json.JSONObject引用依赖包

    JSONObject jsonObject = new JSONObject(jsonString); ``` 4. 将JSON对象转换为字符串: ```java String jsonString = jsonObject.toString(); ``` 在实际开发中,我们还需要引入`org.json`的依赖库到项目中。对于...

    json字符串转成 Map/List

    JSONObject jsonObject = new JSONObject(jsonString); Map&lt;String, Object&gt; map = new HashMap(); for (String key : jsonObject.keySet()) { map.put(key, jsonObject.get(key)); } String jsonArrayString...

    Java常用的强转类型,基本数据类型转换,JSONObject强转Map,JSONArray强转List(附源码)

    以上就是关于Java中基本数据类型转换、JSONObject转Map以及JSONArray转List的详细讲解,希望对你在Java开发过程中处理不同类型数据转换有所帮助。在实际应用中,一定要结合具体场景灵活运用,并注意类型安全。

    android使用JSON进行网络数据交换(服务端、客户端)的实现

    JSONObject jsonObject = new JSONObject(jsonString); String name = jsonObject.getString("name"); int age = jsonObject.getInt("age"); String city = jsonObject.getString("city"); ``` 而`Gson`库则可以...

    json.jar(JSONObject)

    JSONObject jsonObject = new JSONObject(jsonString); ``` 5. 遍历JSON对象:通过`keys()`方法获取所有键的迭代器,然后遍历键值对。例如: ```java Iterator&lt;String&gt; keys = jsonObject.keys(); while (keys...

    JSONObject及依赖的jar包

    - 从JSON字符串构造:你可以通过调用`JSONObject(String jsonString)`构造函数,传入一个有效的JSON字符串来创建`JSONObject`。 - 从Map对象构造:如果你有一个Java `Map`对象,可以使用`JSONObject(Map map)`构造...

    JSONObject与JSONArray的使用.pdf

    JSONObject fromString = JSONObject.fromObject(jsonString); ``` 总结来说,`JSONObject`和`JSONArray`是JSON-Lib库中处理JSON数据的主要工具,它们帮助开发者在Java程序中方便地创建、操作和解析JSON对象。通过`...

    使用JSONObject解析json数据

    1. 直接从JSON字符串构造:`new JSONObject(jsonString)`。 2. 使用键值对构造:`new JSONObject().put("key", "value")`。 3. 通过Map转换:`new JSONObject(map)`,其中map是键值对的集合。 读取`JSONObject`中的...

    JSONLIB之JSONObject与JSONArray的使用

    JSONObject是JSONLIB中的一个关键类,代表了JSON规范中的一个对象,它由键值对组成,键必须是字符串,而值可以是各种JSON数据类型,包括其他JSONObject或JSONArray。在Java中,JSONObject提供了许多方法来创建、修改...

    JSONObject和JSONArray对象的创建方法

    JSONObject jsonObject = JSON.parseObject(jsonString); ``` **JSONArray创建方法** 1. **从List对象创建**: 类似于`JSONObject`,你可以从List对象创建`JSONArray`。 ```java List&lt;String&gt; list = Arrays....

    com.alibaba.fastjson.JSON , net.sf.json.JSONObject

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输。在Java开发中,处理JSON数据时通常会用到一些库,如`com.alibaba.fastjson.JSON` 和 `...

    net.sf.json.JsonObject需要的jar包

    JSONObject jsonObject = JSONObject.fromObject(jsonString); ``` 5. 同样,也可以将Java对象序列化为JSON字符串: ```java JSONObject jsonObject = new JSONObject(yourJavaObject); String jsonString = ...

    【Android】JSON数据的读写方法

    JSONObject jsonObject = new JSONObject(jsonString); String name = jsonObject.getString("name"); int age = jsonObject.getInt("age"); ``` - `JSONArray`用于解析数组类型数据,如: ```java String ...

    List转json 顺序不一致(针对json2.1版本JSONObject类重写)

    总之,要解决`JSONObject`转换过程中顺序不一致的问题,关键是理解JSON对象的无序性质,并根据需要选择合适的方法来保留顺序,如使用保留顺序的JSON库、自定义序列化或使用`JSONArray`。同时,定期更新依赖库以利用...

Global site tag (gtag.js) - Google Analytics