JSON解析----个人学习笔记

《Android移动应用基础教程》(Android Studio)(第二版)黑马教程 课后题答案 第11章 《Android移动应用基础教程》(Android Studio)(第二版)黑马教程 课后题答案 第11章——网络与数据处理 一、填空题 URLConnection WebKit JSONObject 二、判断题 对 2、对 3、对 4、对 5、对 6、错 三、选择题 ABCD 2、ABD 四、简答题 简述使用HttpURLConnection 访问网络的步骤。 答:使用HttpURLConnection访问网络的步骤如下: (1) 创建URL对象。 ( 阅读详情
 

JSON简介

JSON(JavaScriptObject Notation)是一种轻量级的数据交换方式,

将对象转换成字符串对象进行信息发送,

JSON 需要导入第三方jar包

JSON数据作为目前网络中主流的数据传输格式之一,应用十分广泛

 

JSON解析的三种方式:

JSON

GSON

 FASTJSON

JSON可以表示的数据:

     对象:对象表示用“{}”扩起来的内容

          数据结构为:{name:zhangsan,age:20}

    数组:数组表示用“[]”扩起来的内容,

          数据结构为:[“北京”,”上海”,”广州”]

将两种结合起来表示的方式:

{

 “User”[{name:zhangsan,age:20},{name:lisi,age:3}]

}

含义:在对象中有个带有索引的数组,数组里面是以对象为元素


  


JSON解析简单例子《每种对象解析操作代码在不同类中有相同的颜色》:

(1)    Person 类  属于实体类,用于生成类对象,里面有 name,age,address属性

(2)    ServiceBean 生成要进行操作的对象 

           《1》用函数直接返回Person对象

           《2》用函数返回list集合,集合元素为Person对象

         《3》用函数返回list集合,集合元素为String的字符串

         《4》用函数返回list集合 ,集合元素为map《》集合

(3)    Jsonools 类

createJsonString能将所有种类的对象通过json解析调用方法转换成字符串

其他每个类是将对具有不同格式对象的字符串解析成对象

这个业务类实现了生成各种对象,有的类将这些对象装在集合对象里进行返回,有的直接将对象返回

ServiceBean.java

// 自定义业务组件类

public class ServiceBean {

      //返回一个实体对象Person

      publicstatic Person getPerson(){

            Person p=new Person("张三",20,"北京");

            return p;

      }

//返回实体集合对象

      publicstatic List<Person> getListPerson(){

            List<Person> persons=newArrayList<Person>();

            persons.add(new Person("张三",20,"北京"));

            persons.add(new Person("李四",22,"上海"));

            persons.add(new Person("小丽",25,"广州"));

            persons.add(new Person("小梅",23,"深圳"));

            persons.add(new Person("小芳",18,"湖北"));

            persons.add(new Person("小郭",21,"东北"));

            return persons;

      }

//返回字符串的集合

      publicstatic List<String> getListString(){

            List<String> strings=newArrayList<String>();

            strings.add("北京");

            strings.add("上海");

            strings.add("广州");

            strings.add("深圳");

            strings.add("杭州");

            return strings;

      }

//返回map对象的集合

      publicstatic List<Map<String,Object>> getMaps(){

            List<Map<String,Object>>maps=new ArrayList<Map<String,Object>>();

            Map<String,Object> map1=newHashMap<String, Object>();

            map1.put("name","小丽");

            map1.put("age",18);

            map1.put("addr","北京");

            maps.add(map1);        

            Map<String,Object> map2=new HashMap<String,Object>();

            map2.put("name","小梅");

            map2.put("age",28);

            map2.put("addr","上海");

            maps.add(map2);  

            Map<String,Object> map3=newHashMap<String, Object>();

            map3.put("name","小剑");

            map3.put("age",20);

            map3.put("addr","广州");

            maps.add(map3);

            return maps;

      }

}

Person.java

package com.hsj.domain;

 自定义Person类

publicclass Person {

 //这里代码就省了,很简单,声明三个私有的name,age,address属性,并生成它们的get,set,toString方法,以及构造函数

}


//这个类实现了用同一个函数将不同对象转换成字符串,用不同函数将不同种类的字符串转换成相应的对象

JsonTools.java

/**

 *自定义Json工具类.

 * JSON工具类主要干以下两件事:

 * A:将java对象转化成Json字符串

 *  B:将Json字符串还原成相应的Java对象

 */

public classJsonTools {

       /**

        *将java对象转化成Json字符串

        *@param key json字符串中的键

        *@param value json字符串中的对象

        *@return json字符串

        */

       public static StringcreateJsonString(String key,Object value){

              //1.实例化Json对象

              JSONObjectjsonObject=new JSONObject();

              //2.将指定的键和value添加到Json对象中

              jsonObject.put(key,value);

              //3.将json对象转化成json字符串

              StringjsonString=jsonObject.toString();

              returnjsonString;

       }

      

       /**

        * {"person":{"addr":"北京","age":20,"name":"张三"}}

        *

        * 将json字符串还原成java对象

        *@param json json字符串

        *@return java对象

        */

       public static Person getPerson(Stringjson){

              //1.实例化JSON对象

              JSONObjectjsonObject=new JSONObject();

              //2.将给定的json字符串还原成JSON对象

              jsonObject=jsonObject.fromObject(json);

              //3.解析JSON对象得到需要的数据

              jsonObject=jsonObject.getJSONObject("person");

              Stringname=jsonObject.getString("name");

              intage=jsonObject.getInt("age");

              Stringaddr=jsonObject.getString("addr");       

              Personp=new Person(name,age,addr);

              return p;

       }

       /**

        * {"persons":[

        *               {"addr":"北京","age":20,"name":"张三"},

        *                {"addr":"上海","age":22,"name":"李四"},

        *                {"addr":"广州","age":25,"name":"小丽"},

        *                {"addr":"深圳","age":23,"name":"小梅"},

        *                {"addr":"湖北","age":18,"name":"小芳"},

        *              {"addr":"东北","age":21,"name":"小郭"}

        *         ]

              }

        * 将给定的json字符串还原成java对象

        *@param json json字符串

        *@return java对象

        */

       public static List<Person>getListPerson(String json){

              List<Person>persons=new ArrayList<Person>();

             

              //1.实例化JSON对象

              JSONObjectjsonObject=new JSONObject();

              //2.将指定的json字符串传递给json对象返回json对象

              jsonObject=jsonObject.fromObject(json);

              //3.解析Json字符串

              JSONArrayjsonArray=jsonObject.getJSONArray("persons");

              //获取json数组中元素的个数

              intsize=jsonArray.size();

              for(inti=0;i<size;i++){

                     jsonObject=jsonArray.getJSONObject(i);

                     Stringname=jsonObject.getString("name");

                     int age=jsonObject.getInt("age");

                     Stringaddr=jsonObject.getString("addr");

                     Person p=new Person(name,age,addr);

                     persons.add(p);

              }

              returnpersons;

       }

       /**

        * {"citys":["北京","上海","广州","深圳","杭州"]}

        * 将给定的json字符串还原成java对象

        *@param json json字符串

        *@return java对象

        */

       public static List<String>getListString(String json){

              List<String>strings=new ArrayList<String>();

             

              JSONObjectjsonObject=new JSONObject();

              jsonObject=jsonObject.fromObject(json);

              JSONArrayjsonArray=jsonObject.getJSONArray("citys");

              intsize=jsonArray.size();

              for(inti=0;i<size;i++){

                     String city=jsonArray.get(i).toString();

                     strings.add(city);

              }

              returnstrings;

       }

      

       /**

        * {"maps":[

        *               {"age":18,"name":"小丽","addr":"北京"},

        *               {"age":28,"name":"小梅","addr":"上海"},

        *               {"age":20,"name":"小剑","addr":"广州"}

        *          ]

     * }

        * 将给定的json字符串还原成java对象

        *@param json json字符串

        *@return java对象

        */

       public staticList<Map<String,Object>> getMaps(String json){

              List<Map<String,Object>>maps=new ArrayList<Map<String,Object>>();

              JSONObjectjsonObject=new JSONObject();

              jsonObject=jsonObject.fromObject(json);

              JSONArrayjsonArray=jsonObject.getJSONArray("maps");

              intsize=jsonArray.size();

              for(inti=0;i<size;i++){

                     jsonObject=jsonArray.getJSONObject(i);

                     Stringname=jsonObject.getString("name");

                     intage=jsonObject.getInt("age");

                     Stringaddr=jsonObject.getString("addr");

                     Map<String,Object> map=newHashMap<String, Object>();

                     map.put("name",name);

                     map.put("age",age);

                     map.put("addr",addr);

                     maps.add(map);

              }

              returnmaps;

       }

}


//这个类是主类 ,负责获取ServiceBean中的对象内容,通过JsonTools方法转换成字符串,再将字符串通过对应的方法转换成相应的对象

TestRawParseJsonDemo01.java

publicclass TestRawParseJsonDemo01 {

       public static void main(String[] args) {

       /*    //1.从数据源中得到数据

              Personp1=ServiceBean.getPerson();

              //2.将对象转化成json字符串

              StringjsonString=JsonTools.createJsonString("person",p1);

              //{"person":{"addr":"北京","age":20,"name":"张三"}}

              System.out.println("jsonString="+jsonString);

              //3.将给定的json字符串还原成java对象

              Personp=JsonTools.getPerson(jsonString);

              System.out.println("p="+p);

              */

              /*//1.从数据源中得到数据

              List<Person>persons=ServiceBean.getListPerson();

              //2.将java对象转化成json字符串

              StringjsonString=JsonTools.createJsonString("persons",persons); 

               *{"persons":[

               *          {"addr":"北京","age":20,"name":"张三"},

               *         {"addr":"上海","age":22,"name":"李四"},

               *         {"addr":"广州","age":25,"name":"小丽"},

               *         {"addr":"深圳","age":23,"name":"小梅"},

               *         {"addr":"湖北","age":18,"name":"小芳"},

               *         {"addr":"东北","age":21,"name":"小郭"}

               *  ]

               * }

              System.out.println("jsonString="+jsonString);

              //3.将给定的json字符串还原成java对象

              List<Person>json_persons=JsonTools.getListPerson(jsonString);

              System.out.println("json_persons="+json_persons);

              */

              /*//1.得到数据源

              List<String>strings=ServiceBean.getListString();

              //2.将给定的java对象转化成json字符串

              StringjsonString=JsonTools.createJsonString("citys",strings);

              //{"citys":["北京","上海","广州","深圳","杭州"]}

              System.out.println("jsonString="+jsonString);

              //3.根据json字符串还原java对象

              List<String>json_strings=JsonTools.getListString(jsonString);

              System.out.println("json_strings="+json_strings);*/

              //1.得到数据源

              List<Map<String,Object>> maps=ServiceBean.getMaps();

              //2.将给定的java对象转化成json字符串

              StringjsonString=JsonTools.createJsonString("maps",maps);

              /*

               * {"maps":[

               *                 {"age":18,"name":"小丽","addr":"北京"},

               *                 {"age":28,"name":"小梅","addr":"上海"},

               *                 {"age":20,"name":"小剑","addr":"广州"}

               *            ]

               * }

               */

              System.out.println("jsonString="+jsonString);

              //3.将给定的json字符串还原成java对象

              List<Map<String,Object>>json_maps=JsonTools.getMaps(jsonString);

              System.out.println("json_maps="+json_maps);

       }

}






鸿蒙next json解析 ArkUI 带你玩转 arkts json解析 相信很多同学再开发过程中都会遇到json解析的处理,不管是跟服务端交互 或者是读取本地的json 都会遇到json解析 那么正好今天有空正好讲一下鸿蒙next里面的json解析arkts 里面的提供丰富的api来解析我们的json ,对比其他端来说也是相对比较简单 对于复杂的json 我们可以定义一个 interface 或者一个class 来配合我们的,JSON.parse 来进行解析复杂的json数据 当然这个生成数据模型model 我们团队有开发一个插件,这样也大大方便我们开发。 阅读详情

相关推荐

Ubuntu 24.04 LTS安装WPS Office 2025冬季版全攻略(附字体缺失解决方案)

本文提供了在Ubuntu 24.04 LTS系统上安装WPS Office 2025冬季版的完整指南,详细对比了dpkg、Snap和GUI三种安装方式的优劣。针对安装后常见的中文字体缺失、思源黑体粗细异常等核心问题,给出了从原理分析到手动补充字体库、修改字体配置文件的深度解决方案,确保WPS Office在Linux环境下获得最佳使用体验。

weixin_29284201的博客 619

JSON数据解析

生成JSON数据的源码:http://download.csdn.net/detail/chexitianxia/9137419 客户端activity_main.xml文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"

晨曦天下 617

算法设计与分析 0-1背包问题 动态规划解法【超详细】

0-1背包问题 问题描述 给定i个物品和一个容量为的背包,物品的重量是Wi,其价值为Vi 物品个数为i,背包容量为C。 如何选择装入背包内的物品,使得装入背包中的物品的总价值最大? 其中,每种物品只有全部装入背包或不装入背包两种选择。 物品不能分割,不能重复使用。 动态规划算法思路 首先建立一个数组B[i][c],最上面一行表示背包容量,最左边一列表示物品编号,中间填充的数值表示当当前背包容量为C...

寒泉 4万+

Json(jackson)中通用的存放和获取List列表方法

存放比较简单: private static ObjectMapper objectMapper = new ObjectMapper(); public static boolean putList(List list){ String jsonVal= objectMapper.writeValueAsString(list); return jsonVal== null ? fals

知之可否 4727

STM32L051低功耗模式下LPUART的使用

STM32L0系列低功耗UART配置代码清单及注释,大家可参考学习使用。

嵌入式工程师 2104

从零解析特斯拉线圈:谐振变压器的核心原理与DIY实践

本文深入解析特斯拉线圈的工作原理与DIY实践,从LC振荡电路到电磁耦合,详细介绍了谐振变压器的核心原理。通过材料清单、绕制技巧和安全指南,帮助爱好者从零开始打造迷你闪电发生器,体验高压电子实验的独特魅力。

weixin_33670786的博客 493

java后台:JSONObject调取List值使用方法 @Mappings

JSONObject调取List值使用方法 JSONObject 获取json后无法转换成Bean所以选择用JSONArray接受值 具体用法如下 //用来接收json的值 JSONArray jsonArray = new JSONArray(); //urlString 是你要调用的地址 (填上你要调取的地址) JSONObject json = restTemplate.getFor...

小小的开发者 1万+

操作系统笔记(含王道计算机考研——操作系统课件)

操作系统(OS) 笔记根据B站王道计算机考研——操作系统视频整理所得,视频链接:https://b23.tv/0I2qex 视频中所用课件:链接:https://pan.baidu.com/s/101bFWm0Tv0emNpEneidYPA 提取码:y3dd 1.计算机系统概述 1.简介 什么是操作系统? 操作系统(Operating Ststem, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是

拧发条鸟的博客 6万+

JsonArray用法讲解

这个示例中,首先使用JsonParser将Json字符串解析为JsonArray。然后再使用get方法获取JsonObject中的数据,最终输出解析结果。JsonElement是Json中的基本数据类型,可以是JsonArray、JsonObject、JsonPrimitive或JsonNull。JsonArray是Json中的一个数据类型,本文将讲解JsonArray的用法。这将获取jsonArray中下标为1的JsonElement,即"orange"。这将输出JsonArray中的所有元素。

listeningdu的博客 1万+

某城商银行生产容器云平台详细设计方案分享及经验总结

AS3模式的CIS容器部署在K8S集群内,作为F5的控制器,CIS容器通过对K8S集群内Configmap资源进行监控,将Configmap资源中的内容转化为F5的配置,将配置推送给 F5 ,CIS容器还通过K8S标准的API接口完成业务发现和实时监听集群内Pod的变化,一旦Pod发生变化,相应的更新会及时推送给F5,并完成更新。容器技术发展非常迅速,现在应用大多以容器作为承载介质,前两年在容器云上承载的应用类型主要是Web类,随着容器云领域的不断发展,越来越多的应用类型将迁移至容器云,包括有状态应用。

qq_61890005的博客 856

【WRF数据准备】海温(SST)数据替换

【WRF数据准备】海温(SST)数据替换

WW、forever的博客 1118

[个人学习笔记]Android 从网络获取json并解析 --Demo

//从网络获取json的方法public String getJsonFromInternet(String url) throws MalformedURLException,IOException { String resultString = ""; InputStreamReader isrInputStreamReader = new InputStreamReader(new

Apple_Can的博客 840

企业级AI平台架构设计:AI应用架构师的未来趋势

企业级AI平台是AI从“实验室”走向“生产线”的关键,而AI应用架构师就是这条“生产线”的总设计师。未来,随着生成式AI、边缘计算、自治式AI的发展,架构师的角色将越来越重要——他们不仅要构建技术平台,还要连接技术与业务,让AI真正创造价值。“不要做‘只会调模型的工程师’,要做‘能解决业务问题的架构师’。因为,真正有价值的AI,从来不是“最先进的模型”,而是“能落地、能复用、能创造业务价值的平台”。愿你在企业AI转型的浪潮中,成为那个“搭建桥梁的人”——连接技术与业务,连接现在与未来。

小程序开发 973

Arduino学习笔记:JSON报文的解析与构建

Arduino 解析和构建JSON报文的简单Demo

weixin_45783574的博客 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

C#解析JSON

全称“JavaScript Object Notation(JavaScript对象表示法)”,JSON 是存储和交换文本信息的语法。[ {"id" : 2 , "name" : "星河爆破" , "number" : 999 } , {"id" : 3 , "name" : "九星连珠" , "number" : 9 } , {"id" : 4 , "name" : "一语成谶" , "number" : 999 } ]学习JSON基础教程在线JSON解析及格式化验证网站。

weixin_43046974的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

一份简单的JSON教程(个人学习笔记)

json

m0_60980259的博客 1934

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

使用 Gson 解析 Json

Gson 解析 JSON:你可以使用方法将 JSON 字符串解析为 Java 对象,使用方法将 Java 对象转换为 JSON 字符串。处理嵌套数据:当 JSON 中包含数组或嵌套对象时,你可以使用集合类(如List<T>)或定义嵌套的 Java 类来映射 JSON 数据。泛型类型解析:使用TypeToken来处理带有泛型参数的类型(如List<T>Gson 是一个非常灵活且强大的库,广泛应用于 Android 和 Java 项目中,特别适合进行 JSON 数据与 Java 对象之间的转换。

2402_85226471的博客 1272

Qt解析JSON

Qt解析JSON的类QJsonDocument、QJsonObject、QJsonArray

qq_44723937的博客 3945

利用urllib读取JSON,然后将JSON解析为Python对象 —— python学习笔记

1. 题目: 请利用urllib读取JSON,然后将JSON解析为python对象: 题目的意思是使用urllib访问一个接口,这个接口会放回json格式的数据,请将这一数据解析成python对象。 题目是廖雪峰老师的python教程中urllib的练习。 本篇博文只是针对这一题目,没有做详细的介绍,如果看不懂可以在下面评论问我,我会及时回复的。 2. 代码如下: 首先需要提到的是,在廖雪峰老师的...

我是张跑跑 7081

JSON解析

JSON解析前言一、JSON的格式二、JSON解析工具1.Gson2.FastJson三、JSON解析1.jar导入2.使用Gson解析JSON3.使用Fastjson解析JSON总结 前言 JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。使用非常广泛。 一、JSON的格式 格式1——对象格式:一个对象, 由一个大括号表示. 括号中描述对象的属性 . 通过键值对来描述对

qq_43073697的博客 3万+

菜鸟也想学习JSON解析

提示:以下则是Java小白的学习笔记 提示:可多看 文章目录前言一、JSON是什么?二、对象格式三、数组格式四、Java与JSON五、Gson六、FastJson 前言 提示:假如你想学习JSON解析,那就多看两眼呀 提示:以下是本篇文章正文内容,下面案例可供参考 一、JSON是什么? 示例:JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式. 二、对象格式 一本书 书名 简介 java class Book{ priva

weixin_47948453的博客 2310

Json解析学习笔记

Json解析步骤 Gson解析步骤 Google开源,使用前提:导入Gson的jar包 Impot com.google.gson.Gson; 一、 Java对象转换成Json格式的字符串 //1. 创建Gson对象。 Gson g = new Gson(); //2. 转换Java对象为Json格式的字符串。 Book b = new Book(); String s = g.toJson(b); System.out.println(s); //=============================

sinat_41259724的博客 279

【学习笔记】JSON学习笔记

我是灼灼,一只初学Java的大一金渐层。 向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄;追逐过王尔德、王小波的文字,后陷于毛姆和斯蒂芬·金不可自拔;热爱文学的浪潮,白日梦到底却总在现实里清醒;艳羡平静又极度渴盼奔跑的力量。 欢迎与我交流鸭· QQ:1517526827; 个人博客:https://blog.csdn.net/weixin_52777510?spm=1001.2101.3001.5343 JSON 学习笔记 之前有在java中学习过JSON的使用! 内容来自菜鸟教程:JSON.

weixin_52777510的博客 852

【JSON文件解析】JSON文件

JSON文件是什么? Qt如何解析JSON文件?

wddkxg的博客 3203
上一篇: java反射机制 以及通过反射获得类的变量字段,方法,构造函数
下一篇: Servlet&网络访问
AlwaysDebug
博客等级 码龄11年 2粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值