基本类型到JSON的转化

一、 总结

JSON对象是一个无序的"名称/值"对的集合它开始于“{”,结束于“}”。每一个属性名和值间用“:”提示,属性间用“,”分隔。一个数组开始于"[",结束于"]",值之间用","分隔。
数组和List转换为JSON用JSONArray.fromObject Map、bean、beans(保存在一个List中转换)转换为JSON用 JSONObject.fromObject
JSONObject.toBean(JSONObject类型,Class类型) // 转换为对象(如自定义类对象,Map对象等)

JSON (JavaScript Object Notation)是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互. JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。Json必需的包(重新导入包后需重启下,因为这个问题浪费了我好长时间 ,需注意)commons-beanutils.jar commons-lang-2.4.jarcommons-logging-1.1.1.jarjson-lib-2.2.3-jdk13.jarezmorph-1.0.6.jarcommons-collections-3.2.1.jar

<script language="javascript">  
  
 function showJSON() {     
     var user =      
     {      
         "username":"andy",     
         "age":20,     
         "info": { "tel": "123456", "cellphone": "98765"},     
         "address":     
             [     
                 {"city":"beijing","postcode":"222333"},     
                 {"city":"newyork","postcode":"555666"}     
             ]     
     }             
     alert(user.username);     
     alert(user.age);     
     alert(user.info.cellphone);   
     user.info["cellphone"]    
     alert(user.address[0].city);     
     alert(user.address[0].postcode);     
 }   
</script>  

这表示一个user对象,拥有username, age, info, address 等属性。同样也可以用JSON来简单的修改数据,修改上面的例子js 代码

function showJSON() {     
    var user =      
    {      
        "username":"andy",     
        "age":20,     
        "info": { "tel": "123456", "cellphone": "98765"},     
        "address":     
            [     
                {"city":"beijing","postcode":"222333"},     
                {"city":"newyork","postcode":"555666"}     
            ]     
    }             
    user.username = "Tom";     
    alert(user.username);     
}   

易错地方 (注意有无外引号):

    function testJson(){  
           
         var str = { "name": "Violet", "password": "character" }; 
         alert(typeof(str));    
         alert(str.password);   
         alert(obj.toJSONString());      
          var a=50,b="xxx";  
          var arr="{id:"+a+",name:'"+b+"'}";
          var str2 = '{ "name": "Violet", "password": "character" }';       
          alert(typeof(str2)); 
          var obj = eval('(' + str2 + ')');
          alert(typeof(obj));   
          alert(obj.name);    
    }  
    </script>  

JSONObject resultJSON = new JSONObject();   
resultJSON.put("param1", 1);  
resultJSON.put("param2", 2);  
resultJSON.put("param3", 3);  
System.out.println(resultJSON);    
//{"param1":1,"param2":2,"param3":3}  

二、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());

//当是对象的时候 Student student = new Student(); student.setAge(18); student.setName("zhangsan"); student.setSex("male"); JSONObject jsonObject = JSONObject.fromObject(student); System.out.println(jsonObject);//输出{"age":18,"name":"zhangsan","sex":"male"}
4.数组转换成json代码boolean[] boolArray = new boolean[] { true, false, true };JSONArray jsonArray1 = JSONArray.fromObject(boolArray);
**5.beans转换成json代码 **

 List  userInfosList = new ArrayList<UserInfo>();  
 UserInfo u1 = new UserInfo();   u1.setUserId(10000);    u1.setUserName("qqqqq");   u1.setPassword("111111");   
UserInfo u2 = new UserInfo();  
 u2.setUserId(10001);    
u2.setUserName("wwwww");   
 u2.setPassword("222222");   
userInfosList.add(u1);  
 userInfosList.add(u2);   
JSONArray json2=JSONArray.fromObject(userInfosList); Iterator it=**json**2.listIterator();       
 while(it.hasNext())   {
            JSONObject obj=(JSONObject)it.next();            
            UserInfo u=(UserInfo)JSONObject.toBean(obj,UserInfo.class);                   
            System.out.println(u.getPassword());       
 }

6、String转JSON

String listStr = "['apple','orange']";        
JSONArray json = JSONArray.fromObject(listStr);  

三、JSON转List、Map

JSON转List

        String str = "['apple','orange']";  
        JSONArray **json** = JSONArray.fromObject(str);  
        Collection<String> list = JSONArray.toCollection(**json**);  
        for (String s : list) {  
               System.out.println(s);  
        }  

JOSN转Map

        String mapStr = "{'age':30,'name':'Michael','baby':['Lucy','Lily']}";  
        JSONObject **json**3 = JSONObject.fromObject(mapStr);  
        Map<String, Object> map = (Map) JSONObject.toBean(**json**3, Map.class);  
        for (Map.Entry<String, Object> entry : map.entrySet()) {  
            System.out.println(entry.getKey() + " " + entry.getValue());  
        }  

四、遍历JSON数据的两种常用方式

var **json**={"status":1,"info":"u83b7u53d6u6210u529f","data":[{"id":"4","name":"u77f3u5bb6u5e84","information":"u5e02","Region_id":"3","type":"1"}]}  
var data=**json**.data;  
for(i=0;i<data.length;i++)  
{  
    document.write("Name:"+data[i].name+",Info:"+data[i].information+"");  
}  

var **json**=[{"kl_id":"2","kl_title":"Test date1","kl_content":"Test date2","kl_type":"3","id":"6"},{"kl_id":"2","kl_title":"Test1","kl_content":"Test2","kl_type":"1","id":"9"}]  
    var str = "";  
    for (var one in **json**)  
     {  
        for(var key in **json**[one])  
         {  
             str += **json**[one][key] + ",";  
         }  
     }  
     document.write(str);  
List list = query.list();  
List<String> excList = new ArrayList<String>();  
        if(list!=null && list.size()>0){  
            for (int i = 0; i < list.size(); i++) {  
                Object[] obj = (Object[]) list.get(i);  
                EipAnalysisServiceExc excR=new EipAnalysisServiceExc();  
                excR.setId(Long.parseLong(obj[0].toString()));  
                excR.setServiceName(obj[1]!=null?obj[1].toString():null);  
                  
                excList.add(JSONObject.fromObject(excR).toString());  
            }  
        }  
for (int i = 0; i < excList.size(); i++) {  
    JSONObject jSONObject = JSONObject.fromObject(excList.get(i));  
    EipAnalysisServiceExc exc = JSONObject.toBean(jSONObject, EipAnalysisServiceExc.class);  
        }  

由JSONObject.fromObject(excR)得到JSONObject对象,然后toString传输,再JSONObject.fromObject解析为JSONObject对象
使用JSONObject.toBean(JSONObject类型,Class类型) ,转换为对象(如自定义类对象,Map对象等) 转换为类类型

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容