Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 410|回复: 0

[Java基础知识]java中使用Json

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-9-30 17:42:07 | 显示全部楼层 |阅读模式
    最近在学习JSON,顺便就把自己学习的总结一下
    一 简介:
          JSON(javaScript对象符号)是一种轻量级的数据交换格式。这是很容易为人类所读取和写入。这是易于机器解析和生成。它是基于JavaScript编程语言的一个子集 , 标准ECMA-262第三版- 1999年12月。JSON是一个完全独立于语言的文本格式,但使用C家族的语言,包括C,C + +,C#,Java中的JavaScript,Perl的,python中,和许多其他程序员所熟悉的约定。这些特性使JSON成为理想的数据交换语言。他和map很类似,都是以
    键/值 对存放的。 二 JSON 使用须要用的JAR包: commons-lang.jar
    commons-beanutils.jar
    commons-collections.jar
    commons-logging.jar
    ezmorph.jar
    json-lib-2.2.2-jdk15.jar  
      
       
       

         
       

         
       
      
    三 使用JSON中的JSONObject:
    1.创建一个JSONObject对象,并使用put();方法添加元素:
    首先我们创建一个User对象以备后用:
    1. public class User {
    2. private int id;
    3. private String name;
    4. private String pwd;
    5. private String sex;
    6. //get,set方法
    7. @Override
    8. //重写他的toString方法
    9. public String toString() {
    10.    return this.name+"--"+this.pwd+"--"+this.sex;
    11. }
    12. }
    复制代码
    例子如下:
    1. import net.sf.json.JSONObject;
    2. public class TestJson {
    3. private static JSONObject json = null;
    4.         public static void main(String[] args) {
    5.                 json = new JSONObject();
    6.                 json.put("id","1");
    7.                 json.put("name","张三");
    8.                 json.put("pwd","123456");
    9.                 System.out.println(json);
    10.         }
    11. }
    12. 运行:
    复制代码
    C:java>java TestJson
    {"id":"1","name":"张三","pwd":"123456"}

    通过这段代码我们就能很清淅的看到他的添加元素和map集合方式一样。 现在我们要将这个json对象放进一个JAVABEAN的User对象怎么弄呢?很简单 我们须要在 TestJson 类中的主方法中加入(放在System.out.println(json)这句话后面) User user = new User();
    user.setId(Integer.parseInt(json.getString("id")));  //json.getString("id")就是通过他的KEY值取得对应的value值
    user.setName(json.getString("name"));
    user.setPwd(json.getString("pwd"));
    System.out.println(user); 这样我们就把json这个对象里的值放进user对象里面了。
    运行:
    C:java>java TestJson
    {"id":"1","name":"张三","pwd":"123456"}
    张三--123456--null json添加元素除了用put();方法之外还可以用element();如:json.element("11", "222"); 2.创建一个JSONArray对象,并添加元素:  JSONArray添加元素和list集合一样,当然取值也很像,代码如下
    1. import net.sf.json.*;
    2. public class TestJson1 {
    3. private static JSONObject json = null;
    4. private static JSONArray  jsonArray = null;
    5. public static void main(String[] args) {
    6.        jsonArray = new JSONArray ();
    7.        jsonArray.add(0, "张三");
    8.        jsonArray.add(1, "李四");
    9.        jsonArray.add(2, "王五");
    10.        jsonArray.add(3, "小三");
    11.        System.out.println(jsonArray);
    12.        System.out.println(jsonArray.get(1));  
    13.    }
    14. }
    复制代码
    输出结果为:
    ["张三","李四","王五","小三"]
    李四 注:json的基本格式这些网上很多,就不多说了,我们只须记住一句话就行了:[]表示数组,{}表示对象就完了!
    1. 1.从Object到String
    2. 要先用Object对象构造一个JSONObject或者JSONArray对象,然后调用它的toString()方法即可
    3. (1)示例一
    4. Book book=new Book();
    5. book.setName("Java");
    6. book.setPrice(52.3f);
    7. JSONObject object=JSONObject.fromObject(book);
    8. System.out.println(object.toString());
    9. (2)示例二
    10.          Book book=new Book();
    11.          book.setName("Java");
    12.          book.setPrice(52.3f);
    13.          
    14.          Book book2=new Book();
    15.          book2.setName("C");
    16.          book2.setPrice(42.3f);
    17.          List list=new ArrayList();
    18.          list.add(book);
    19.         list.add(book2);
    20.         JSONArray arry=JSONArray.fromObject(list);
    21.         System.out.println(arry.toString());
    22. //结果如下:
    23. [{"name":"Java","price":52.3},{"name":"C","price":42.3}]
    24. 2.从String到Object
    25. 要先用String对象构造一个JSONObject或者JSONArray对象
    26. (1)示例一
    27. String json="{name:"Java",price:52.3}";   
    28. JSONObject object=JSONObject.fromObject(json);
    29. System.out.println(object.get("name")+" "+object.get("price"));

    30. (2)示例二
    31. String json="[{name:"Java",price:52.3},{name:"C",price:42.3}]";
    32. JSONArray array=JSONArray.fromObject(json);
    33. for(int i=0;i< array.size();i++){
    34.      Map o=(Map)array.get(i);
    35.      System.out.println(o.get("name")+" "+o.get("price"));
    36. }
    37. 3.从String到Bean
    38. (1)单个Bean对象
    39.          String json="{name:"Java",price:52.3}";
    40.          JSONObject object=JSONObject.fromObject(json);
    41.          Product product=(Product)JSONObject.toBean(object,Product.class);
    42.          System.out.println(product.getName()+" "+product.getPrice());
    43.                  
    44. (2).Bean的数组
    45.          String json="[{name:"Java",price:52.3},{name:"C",price:42.3}]";
    46.          JSONArray array=JSONArray.fromObject(json);
    47.          Product[] products=(Product[]) JSONArray.toArray(array,Product.class);
    48.          for(Product p:products){
    49.              System.out.println(p.getName()+" "+p.getPrice());
    50.          }
    51. 自定义封装JSON操作的类
    52. package com.util;

    53. import java.util.List;
    54. import java.util.Map;

    55. import net.sf.json.JSONArray;
    56. import net.sf.json.JSONObject;

    57. public class JsonHelper {
    58.      //从普通的Bean转换为字符串
    59.          public static String getJson(Object o){
    60.          JSONObject jo=JSONObject.fromObject(o);
    61.          return jo.toString();
    62.      }
    63.      //从Java的列表转换为字符串
    64.          public static String getJson(List list){
    65.          JSONArray ja=JSONArray.fromObject(list);
    66.          return ja.toString();
    67.      }
    68.      //从Java对象数组转换为字符串
    69.          public static String getJson(Object[] arry){
    70.          JSONArray ja=JSONArray.fromObject(arry);
    71.          return ja.toString();
    72.      }
    73.          
    74.      //从json格式的字符串转换为Map对象
    75.               public static Map getObject(String s){
    76.          return     JSONObject.fromObject(s);
    77.      }
    78.          
    79.          
    80.      //从json格式的字符串转换为List数组
    81.          
    82.          public static List getArray(String s){
    83.          return JSONArray.fromObject(s);
    84.      }
    85.      //从json格式的字符串转换为某个Bean
    86.           public static Object getObject(String s,Class cls){
    87.          JSONObject jo=JSONObject.fromObject(s);
    88.         return JSONObject.toBean(jo, cls);
    89.      }
    90.      //从json格式的字符串转换为某类对象的数组
    91.          public static Object getArray(String s,Class cls){
    92.          JSONArray ja=JSONArray.fromObject(s);
    93.          return JSONArray.toArray(ja, cls);
    94.      }
    95. }
    复制代码


      
      
       
       

         
       

         
       
      
    复制代码
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-20 20:16 , Processed in 0.502694 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表