什么是JSON

什么是JSON
JSON:JavaScript Object Notation 【JavaScript 对象表示法】

JSON 是存储和交换文本信息的语法。类似 XML。

JSON采用完全独立于任何程序语言的文本格式,使JSON成为理想的数据交换语言S

为什么需要JSON
提到JSON,我们就应该和XML来进行对比。XML也是一种存储和交换文本信息的手段。那么JSON好在哪里呢??

JSON 比 XML 更小、更快,更易解析。

javaScript原生支持JSON,解析速度会很快
XML解析成DOM对象的时候,浏览器【IE和fireFox】会有差异
使用JSON会更简单
在这里插入图片描述
更加容易创建JavaScript对象

var p = {‘city’:[‘北京’,‘上海’,‘广州’,‘深圳’]};
for(var i=0;i<p.city.length;i++){
document.write(p.city[i]+“
”);
}
JSON语法
客户端与服务端的交互数据无非就是两种

数组
对象
于是乎,JSON所表示的数据要么就是对象,要么就是数据

JSON语法是javaScript语法的子集,javaScript用[]中括号来表示数组,用{}大括号来表示对象,JSON亦是如此

JSON数组:
var employees = [
{ “firstName”:“Bill” , “lastName”:“Gates” },
{ “firstName”:“George” , “lastName”:“Bush” },
{ “firstName”:“Thomas” , “lastName”: “Carter” }
];
JSON对象
var obj = {

        age: 20,str: "zhongfucheng",method: function () {alert("我爱学习");}};

当然啦,数组可以包含对象,在对象中也可以包含数组

解析JSON
javaScript原生支持JSON的,我们可以使用eval()函数来解析JSON,把JSON文本数据转换成一个JavaScript对象。

function test() {
//在写JOSN的时候,记得把带上逗号
var txt = “{a:123,” +
“b:‘zhongfucheng’}”;

        //使用eval解析JSON字符串,需要增添()var aa = eval("(" + txt + ")");alert(aa);}

效果

不用框架时将JavaBean转成JSON
使用Strus2的时候,Struts2自带了组件能够让JavaBean对象、集合转成是JSON,不用我们自己拼接…这是非常方便的。
使用SpringMVC的时候,SpringMVC也支持将JavaBean转成JSON
但是,我们不一定使用框架来做开发呀。因此,我们还得学习使用第三方库来将JavaBean对象、集合转成JSON

导入开发包
commons-io-2.0.1.jar
commons-lang-2.5.jar
commons-collections-3.1.jar
commons-beanutils-1.7.0.jar
ezmorph-1.0.3.jar
json-lib-2.1-jdk15.jar
事例代码
package cn.itcast.javaee.js.bean2json;

import net.sf.json.JSONArray;

import java.util.*;

/**

  • 使用第三方工具,将JavaBean对象/List或Set或Map对象转成JSON

  • @author AdminTC
    */
    public class TestBean2Json {
    private static void javabean2json() {
    City city = new City(1,“广州”);
    JSONArray jSONArray = JSONArray.fromObject(city);
    String jsonJAVA = jSONArray.toString();
    System.out.println(jsonJAVA);
    //[{“id”:1,“name”:“广州”}]
    }
    private static void list2json() {
    List cityList = new ArrayList();
    cityList.add(new City(1,“广州”));
    cityList.add(new City(2,“珠海”));
    JSONArray jSONArray = JSONArray.fromObject(cityList);
    String jsonJAVA = jSONArray.toString();
    System.out.println(jsonJAVA);
    //[{“id”:1,“name”:“广州”},{“id”:2,“name”:“珠海”}]
    }
    private static void set2json() {
    Set citySet = new LinkedHashSet();
    citySet.add(new City(1,“广州”));
    citySet.add(new City(2,“珠海”));
    JSONArray jSONArray = JSONArray.fromObject(citySet);
    String jsonJAVA = jSONArray.toString();
    System.out.println(jsonJAVA);
    //[{“id”:1,“name”:“广州”},{“id”:2,“name”:“珠海”}]
    }
    private static void javabeanlist2json() {
    List cityList = new ArrayList();
    cityList.add(new City(1,“中山”));
    cityList.add(new City(2,“佛山”));
    Province province = new Province(1,“广东”,cityList);

     JSONArray jSONArray = JSONArray.fromObject(province);String jsonJAVA = jSONArray.toString();System.out.println(jsonJAVA);/*[{"id":1,"name":"广东""cityList":[{"id":1,"name":"中山"},{"id":2,"name":"佛山"}],}]*/
    

    }
    private static void map2json() {

     List<City> cityList = new ArrayList<City>();cityList.add(new City(1,"中山"));cityList.add(new City(2,"佛山"));Map<String,Object> map = new LinkedHashMap<String,Object>();map.put("total",cityList.size());//表示集合的长度map.put("rows",cityList);//rows表示集合JSONArray jSONArray = JSONArray.fromObject(map);String jsonJAVA = jSONArray.toString();System.out.println(jsonJAVA);//[{"total":2,"rows":[{"id":1,"name":"中山"},{"id":2,"name":"佛山"}]}]jsonJAVA = jsonJAVA.substring(1,jsonJAVA.length()-1);System.out.println(jsonJAVA);
    

    }

}
把要解析成JSON 的javaBena对象、集合放进下面这段代码即可!

JSONArray jSONArray = JSONArray.fromObject(map);
无论放进去什么,返回的都是数组

总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/651069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码块(Java)

代码块是类的成分之一&#xff0c;分为静态代码块和实例代码块 1.静态代码块&#xff1a;static{} 类加载时会自动执行一次&#xff0c;可以完成类的初始化&#xff0c;比如初始化赋值 2.实例代码块&#xff1a;{} 每次创建对象时&#xff0c;执行实例代码块&#xff0c;会…

探索圆的面积计算器:神秘数学背后的无限魅力

导语&#xff1a;自古以来&#xff0c;圆形在人类文明中扮演着重要角色。从建筑、工程设计到日常生活&#xff0c;圆的面积都是一个不可或缺的元素。本文将带您深入了解圆的面积&#xff0c;从起源、应用场景到计算方法&#xff0c;让您领略数学的无穷魅力。 一、圆的面积是什…

java金额数字转中文

java金额数字转中文 运行结果&#xff1a; 会进行金额的四舍五入。 工具类源代码&#xff1a; /*** 金额数字转为中文*/ public class NumberToCN {/*** 汉语中数字大写*/private static final String[] CN_UPPER_NUMBER {"零", "壹", "贰",…

CMake构建Qt工程

在https://blog.csdn.net/fengbingchun/category_12172633.html 上有直接通过vs2022建的Console、Widgets、Quick三个工程&#xff0c;这里增加通过CMake构建。 build.sh内容如下&#xff1a; #! /bin/bashif [ $# ! 1 ]; thenecho "Error: requires one parameter: Rele…

基于springboot网上书城交易平台源码和论文

在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括网上书城管理系统的网络应用&#xff0c;在国外网上书城管理系统已经是很普遍的方式&#xff0c;不过国内的书城管理系统可能还处于起步阶段。网上书城管理系统具有网上书城信…

Spring扩展点在微服务应用(待完善)

ApplicationListener扩展 nacos注册服务&#xff0c; 监听容器发布事件 # 容器发布事件 AbstractAutoServiceRegistration#onApplicationEvent # 接收事件吗&#xff0c;注册服务到nacos NacosServiceRegistry#register Lifecycle扩展 #订阅服务实例更改的事件 NamingService#…

MySQL数据库的一些缩写含义

DDL Data Definition Language&#xff0c;数据定义语言&#xff0c;用来定义数据库对象(数据库&#xff0c;表&#xff0c;字段) DML DML英文全称是Data Manipulation Language(数据操作语言)&#xff0c;用来对数据库中表的数据记录进 行增、删、改操作。 添加数据&#x…

【开源】基于JAVA的学生综合素质评价系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学生功能2.2 教师功能2.3 教务处功能 三、系统展示四、核心代码4.1 查询我的学科竞赛4.2 保存单个问卷4.3 根据类型查询学生问卷4.4 填写语数外评价4.5 填写品德自评问卷分 五、免责说明 一、摘要 1.1 项目介绍 基于J…

24校招,经纬恒润测试工程师PPT技术二面

前言 大家好&#xff0c;我是chowley&#xff0c;今天回顾一下之前参加的PPT工程师面试&#xff08;doge&#xff09; 面试官针对我的PPT进行提问&#xff0c;梦回大学课堂 时间&#xff1a;40min 平台&#xff1a;腾讯会议 过程 20minPPT展示PPT做了多长时间&#xff1f…

【数据结构】栈、队列、数组、列表

数据结构是什么&#xff1f; 数据结构是计算机存储、组织数据的方式 是指数据相互之间是以什么方式排列在一起的。 数据结构是为了更加方便的管理和使用数据&#xff0c;需要结合具体的业务场景来进行选择。一般情况下&#xff0c;精心选择的数据结构可以带来更高的运行或者…

MongoDB日期存储与查询、@Query、嵌套字段查询实战总结

缘由 MongoDB数据库如下&#xff1a; 如上截图&#xff0c;使用MongoDB客户端工具DataGrip&#xff0c;在filter过滤框输入{ profiles.alias: 逆天子, profiles.channel: }&#xff0c;即可实现昵称和渠道多个嵌套字段过滤查询。 现有业务需求&#xff1a;用Java代码来查询…

LeetCode.2861. 最大合金数

题目 题目链接 分析 这道题目一定要多读几遍&#xff0c;才能理解。 大意就是你有钱budget 和 库存stock的金属零件&#xff0c;让你从一堆机器里面选择一种机器可以合成最多金属的数量是多少&#xff0c;这些机器合成金属需要的零件数目是不一样的&#xff0c;composition…

美易平台:金融市场的晴雨表与创新服务的融合

在金融市场中&#xff0c;利率的微妙变动往往预示着经济活动的脉动&#xff0c;而美国纽约联储发布的最新数据显示&#xff0c;上个交易日&#xff08;1月25日&#xff09;担保隔夜融资利率&#xff08;SOFR&#xff09;小幅上升至5.32%&#xff0c;而同期有效的联邦基金利率保…

程序员必备!10款实用便捷的Git可视化管理工具

前言 俗话说得好“工欲善其事&#xff0c;必先利其器”&#xff0c;合理的选择和使用可视化的管理工具可以降低技术入门和使用的门槛。我们在团队开发中统一某个开发工具的使用能够大大降低沟通成本&#xff0c;提高协作沟通效率。今天给大家分享10款实用便捷的Git可视化管理工…

数与抽象之抽象方法

抽象方法 几年前&#xff0c;《泰晤士报文学增刊》的一篇评论在开篇写道&#xff1a; 已知000以及1x11&#xff0c;就可以得到&#xff1a;平方等于自身的数是存在的。但是再进一步&#xff0c;我们就可以得到&#xff1a;数是存在的。经过这简简单单朴实无华的一步&#xff0…

STM32完全学习手册

1. 了解STM32微控制器 了解STM32系列&#xff1a; 了解STM32系列微控制器的不同型号和系列&#xff0c;以及它们的特点和应用领域。 学习基础理论知识&#xff1a; 学习嵌入式系统和微控制器&#xff08;ARM)的基础知识&#xff0c;包括处理器架构、外设、时钟和中断等。 2.…

前端组件封装

组件封装是前端开发中常用的技术手段&#xff0c;它的目的是为了实现代码的重用、提高开发效率和代码质量。在组件封装过程中&#xff0c;需要注意以下几个方面&#xff1a; 分析布局&#xff1a;首先需要对布局进行分析&#xff0c;确定组件的结构和样式。了解组件在不同场景…

(免费领源码)java#SSM#mysql疫情时期人员流调平台69124-计算机毕业设计项目选题推荐

目 录 摘要 1 绪论 1.1研究意义 1.2开发现状 1.3系统开发技术的特色 1.4 ssm框架介绍 1.5论文结构与章节安排 2 疫情时期人员流调平台系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.2.2数据修改流程 2.2.3数据删除流程 2.3 系统功能分析 2.3.1…

VisionMaster图像拼接功能实现

由于硬件或安装环境限制&#xff0c;单个相机视野无法覆盖整个视野&#xff0c;但实际应用需要全视野图像时&#xff0c;可以拍摄物体的多个部分拼接成一张整图。VM提供图像拼接工具对图像进行拼接。 使用标定图进行标定建模是最重要的一步&#xff0c;成功标定后可以将图像无…

python222网站实战(SpringBoot+SpringSecurity+MybatisPlus+thymeleaf+layui)-帖子管理实现

锋哥原创的SpringbootLayui python222网站实战&#xff1a; python222网站实战课程视频教程&#xff08;SpringBootPython爬虫实战&#xff09; ( 火爆连载更新中... )_哔哩哔哩_bilibilipython222网站实战课程视频教程&#xff08;SpringBootPython爬虫实战&#xff09; ( 火…