观看记录
  • 我的观影记录
登录
测试首页java操作json数据之net.sf.json-lib

java操作json数据之net.sf.json-lib

      JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据互换格局。它基于 ECMAScript (欧洲计较机协会拟定的js规范)的一个子集,采用完全自力于编程说话的文本格局来存储和暗示数据。简练和清楚的条理布局使得 JSON 当作为抱负的数据互换说话。 易于人阅读和编写,同时也易于机械解析和生当作,并有用地晋升收集传输效率。

工具/原料

  • 电脑
  • intellij IDEA或者eclipse

方式/步骤

  1. 1

    第一步调:建立一个java项目。

    1、file--》new--》project...或者Model...打开建立窗口

    2、选择建立的项目为spring initializr 进入springboot项目建立步调(也可以选择类型java,建立一个通俗java web项目)

    3、输入项目名字,选择依靠web(若是不需要可以不选),选择存放目次-完当作(Finish)

  2. 2

    第二步调:在pom.xml中添加net.sf.json-lib依靠

    如下所示:在pom.xml文件的dependencies标签中添加

    <dependency>    

    <groupId>net.sf.json-lib</groupId>    

    <artifactId>json-lib</artifactId>    

    <version>2.4</version>    

    <classifier>jdk15</classifier>

    </dependency>

  3. 3

    第三步调:编写代码。

    1、编写实体类:Student get和set方式本身生当作

    public class Student {    private int id;    private String name;    private String sex;

    }

    2、编写测试代码:

    2.1需要引入jar包

    import net.sf.json.JSONObject;

    2.2关头代码

    public static void testObject(){    

    Student st = new Student();    

    st.setId(1);    

    st.setName("张三");    

    st.setSex("男");    

    //转为json对象    

    JSONObject json = JSONObject.fromObject(st);    

    System.out.println(json);    

    //转为json字符串    

    System.out.println(json.toString())    

    //将json字符串转为json对象    

    JSONObject jsonStr = JSONObject.fromObject(json.toString());    

    //获得json数据    

    Object obj = JSONObject.toBean(jsonStr,Student.class);    

    Student st2 = (Student) obj;    System.out.println(st2.getSex());}

    3、测试代码功能。

    3.1首先建立一个实体类,并给属性复制,先实现将实体类转为json对象,转为json字符串的功能。

    3.2 再实现将一个json字符串转为具体的实体类的功能。

    3.3 可以将利用map调集取代实体类实现同样结果。

  4. 4

    第四步调:List调集的json操作。

    具体代码如下所示:

    4.1 需要引入:

    import net.sf.json.JSONArraimport java.util.ArrayList;

    import java.util.List;

    4.2 关头代码:

    public static void testList(){    

    //将调集对象转为json对象,json字符串    

    List<Student> list= new ArrayList<Student>();    

    Student st = new Student();    

    st.setId(1);    

    st.setName("张三");    

    st.setSex("男");    

    Student st2 = new Student();    

    st2.setId(2);    

    st2.setName("小丽");    

    st2.setSex("女");    

    list.add(st);   

    list.add(st2);    

    //将类转为json对象    

    JSONArray array=JSONArray.fromObject(list);    

    System.out.println(array.toString());    

    //将json对象转为对应的调集类    

    JSONArray arrayBean = JSONArray.fromObject(array.toString());    

    List<Student> listBean = (List<Student>) JSONArray.toCollection(arrayBean,Student.class);    

    //输出转换后的成果    

    for (Student lst: listBean) {        

    System.out.println("name:"+lst.getName());    

    }

    }

  5. 5

    第五步调:多层实体类处置。

    1、实体类:set和get方式本身生当作(set和get方式必需有)

    public class Person     private String id;    private Person pserson;

    }

    2、关头测试代码:实体类Person 属性仍是Person 时json解析为实体类时一次搞定。

    import net.sf.json.JSONObject;

    public static void main(String[] args) {    Person p1 = new Person();    p1.setId("111");    Person p2 = new Person();    p2.setId("222");    Person p3 = new Person();    p3.setId("333");    p1.setPserson(p2);    p2.setPserson(p3);    JSONObject jsonp = JSONObject.fromObject(p1);    System.out.println(jsonp);    Object objp = JSONObject.toBean(jsonp,Person.class);    Person p4 = (Person) objp;    Person p5 =  p4.getPserson();    Person p6 =  p5.getPserson();    System.out.println(p6.getId());}

    3、map属性中存放map时比力麻烦需要利用MorphDynaBean 或者get一次解析一次。

    public static void main(String[] args) {    Map map1 = new HashMap();    Map map2 = new HashMap();    Map map3 = new HashMap();    map3.put("value","Male");    map2.put("gender",map3);    map1.put("attributes",map2);    JSONObject json = JSONObject.fromObject(map1);    System.out.println(json);    Object obj2 = JSONObject.toBean(json,Map.class);    Map map = (Map) obj2;    MorphDynaBean map4 = (MorphDynaBean) map.get("attributes");    MorphDynaBean map5 = (MorphDynaBean) map4.get("gender");    String male = (String) map5.get("value");    System.out.println(male);    //或者利用get一次解析一次    JSONObject json3 = JSONObject.fromObject(json.get("attributes"));    Map map6 = (Map) JSONObject.toBean(json3,Map.class);    JSONObject json4 = JSONObject.fromObject(json3.get("gender"));    Map map7 = (Map) JSONObject.toBean(json4,Map.class);    System.out.println(map7.get("value"));}

  6. 6

    第六步调:net.sf.json-lib常用常识点。

    5.1:net.sf.json.JSONObject常用方式:

    JSONObject json = JSONObject.fromObject(st);

    //按照key可以获得一个Object对象,key可所以字符串和Object

    Object obj = json.get("key");

    //按照key可以获得一个布尔值,key是一个字符串

    Boolean bo = json.getBoolean("key");

    还有一下这些,都是按照key返回具体的类型的数据。

    json.getString("key");json.getInt("key");

    json.getDouble("key");

    json.getJSONArray("key");

    json.getJSONArray("key");

    json.getLong("key");

    这些get开首的按照key获取value的方式若是key不存在会报错现实利用结果不是出格好。

    可以考虑opt开首的方式,当key不存在时返回默认值,或者自界说需要返回的内容。如下

    json.opt("key");json.optInt("key");

    json.optInt("key",0);

    json.optString("key");

    json.optString("key","");

注重事项

  • 实体类的属性必然要有对应的set和get方式不然,转换时对应的属性数据会丢掉。
  • 开辟情况jdk1.8 IDEA2018.2.2 maven apache-maven-3.5.4

“java操作json数据之net.sf.json-lib”关联的文章

  • 如何关闭皮皮搞笑精彩内容消息通知

    皮皮搞笑是一款手机搞笑社区App,让用户笑到没心没肺,又忍不住感动流泪的温暖家园,那么如何关闭皮皮搞笑精彩内容消息通知以满足不同用户的需求呢?

    14分钟前0阅读

    如何关闭皮皮搞笑精彩内容消息通知
  • win7系统找不到宽带连接怎么办

    现如今很多用户都喜欢使用win7系统,而在使用win7系统的过程中做的最多的就是上网了。Win7系统上网离不开宽带连接,如果win7宽带连接找不到了,应该怎么办呢?下面就让小编为大家带来win7系统找不到宽带连接解决方法

    14分钟前0阅读

    win7系统找不到宽带连接怎么办
  • 新版QQ音乐怎么关闭底部的直播导航

    新版QQ音乐怎么关闭底部的直播导航?下面请大家随小编一起来看看操作的方法吧。

    14分钟前0阅读

    新版QQ音乐怎么关闭底部的直播导航
  • 怎样查询高速实时路况?

    要出行怎么查询高速实时路况?我们用地图就可以了,在地图上就可以看到实际的路况的,下面详细来看下。

    14分钟前0阅读

  • 六芒星手势密码教程

    14分钟前0阅读

    六芒星手势密码教程
  • 教师讲课过程评价标准

    教师是太阳底下最光辉的职业,但是成为教师之路也是要经历重重考验的,下面给大家说说教师讲课过程评价标准

    14分钟前0阅读

  • 酚醛铝箔夹芯板

    酚醛铝箔夹芯板是由酚醛泡沫与两层亚光铝箔经过特殊工艺复合而成。外膜材料为经过高温固化的高分子膜,可有效的防止紫外线及气体腐蚀,并与铝箔结合牢固,又能与酚醛泡沫形成聚合物,从而保证象圆酚醛铝箔夹芯板的质量稳定。

    14分钟前0阅读

  • Xperia XZ2 Premium配置如何

    Xperia XZ2 Premium是索尼在4月16日悄悄发布的新机,而且没进行预热,下面来简单了解一下配置。

    14分钟前0阅读

  • PLSQL破解,无需注册码和破解工具

    PL/SQL Developer过期了,又没有注册码,又不想花钱买,而且事情又非常急,这时候怎么办?不要着急,请随小编一起解决这种情况吧。

    14分钟前0阅读

  • Win11按capslock切换不了大小写怎么解决

    有朋友不知道在哪里设置,下面小编就给大家分享详细的设置方法,有需要帮助的朋友可以参考下这篇经验,希望能对大家有所帮助。

    1小时前0阅读

    Win11按capslock切换不了大小写怎么解决
切换深色外观
留言
视频编辑修改
回到顶部
首页
手机数码
医疗健康
金融管理
社交情感
无名