二、Json对象、Json数组和Json字符串_json字符串数组-程序员宅基地

技术标签: java基础  json  

一、Json字符串和Json对象定义:

本文中的示例采用的是:fastjson。

1、定义:

  • JSON就是一串字符串 只不过元素会使用特定的符号标注;
  • JSONObject是一个{}包裹起来的一个对象(Object),{} 双括号表示对象;
  • JSONArray则是[]包裹起来的一个数组(Array),[] 中括号表示数组;

2、Json字符串:

所谓字符串:单引号或者双引号引起来,是一个String类型的字符串:如下:

var person='{
    "name":"shily","sex":"女","age":"23"}';//json字符串
console.log(person)
console.log(person.name)
console.log(typeof person)

在这里插入图片描述
 
 

3、Json对象:

最显著的特征:对象的值可以用 “对象.属性” 进行访问,如下:

var person={
    "name":"shily","sex":"女","age":"23"}//json对象
console.log(person);
console.log(person.name);
console.log(typeof person);

在这里插入图片描述

 
 

4、Json数组:

{
    "name": "Michael"} 可以理解为是一个json对象
而
[{
    "name": "Michael"},{
    "name": "Jerry"}]就表示包含两个对象的json数组

 
 

二、Json对象与Json字符串的相互转化:

  • 在js中能够定义json对象和json字符串;
  • 在java中只能定义json字符串,不能直接定义json对象,但是可以通过转换,将json串转换为json对象。

1、在前端js中的方式:

  • Json字符串转化为Json对象:
var  str = '{
    "name":"shily","sex":"女","age":"23"}';
var  strToObj = JSON.parse(str);
console.log(strToObj);
console.log(typeof strToObj);
console.log(strToObj.name)
  • Json对象转化为Json字符串:
var  obj = {
    "name":"shily","sex":"女","age":"23"}//json对象
var  objToStr = JSON.stringify(obj);
console.log(objToStr);
console.log(typeof objToStr)

 
 

2、在后端java代码中的方式:

  • JSON 字符串 转 JSONObject 对象:
public static void main(String[] args) {
    
        //Json字符串转换为Json对象
        String jsonStr = "{\"addr\":\"北京\",\"sex\":\"男\",\"name\":\"张三\",\"age\":22}";
        JSONObject jsonObject = JSONObject.parseObject(jsonStr);
        System.out.println(jsonObject.getString("name")+","+jsonObject.getString("age"));
}

输出结果:

张三,22

 

  • JSONObject 转 JSON 字符串:
public static void main(String[] args) {
    
        //Json对象转换为Json字符串
        JSONObject jsonObject=new JSONObject();
        jsonObject.put("name","张三");
        jsonObject.put("age",22);
        jsonObject.put("sex","男");
        jsonObject.put("addr","北京");
        String str = JSONObject.toJSONString(jsonObject);
        System.out.println(str);
}

输出结果:

{
    "sex":"男","name":"张三","addr":"北京","age":22}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/TTDreamTT/article/details/110881855

智能推荐

ASP.NET Core 运行原理解剖[5]:Authentication-程序员宅基地

文章浏览阅读3.1k次。在现代应用程序中,认证已不再是简单的将用户凭证保存在浏览器中,而要适应多种场景,如App,WebAPI,第三方登录等等。在 ASP.NET 4.x 时代的Windows认证和Forms认证已无法满足现代化的需求,因此在ASP.NET Core 中对认证及授权进行了全新设计,使其更加灵活,可以应付各种场景。在上一章中,我们提到HttpContext中认证相关的功能放在了独立的模块中,以扩展的方式来展_.net core authenticationhandler httpcontext

java8特性:list转Map并排序_list转成map且顺序不变-程序员宅基地

文章浏览阅读1.5w次。初始代码public Map<String,List<RgwstBean>> getMap(List<RgwstBean> lists){ Map<String,List<RgwstBean>> map = new TreeMap<String,List&am_list转成map且顺序不变

leaflet通过WFS服务加载geoserver 矢量数据_leaflet geoserver wfs 方式-程序员宅基地

文章浏览阅读5.9k次,点赞5次,收藏16次。leaflet通过WFS服务加载geoserver 矢量数据1.前言2.从geoserver获得geojson数据3.geoserver跨域配置4.根据请求结果生成layer5.完整代码1.前言leaflet默认支持的服务只有WMS,因此不能加载WFS数据,但是leaflet提供了另一个方法geoJson,它的作用是从一个geojson文件中加载地图,所以利用leaflet加载WFS数据的一个..._leaflet geoserver wfs 方式

自定义动画animate_使用animate方法制作任意动画是什么意思-程序员宅基地

文章浏览阅读937次。开发工具与关键技术:VS,MVC作者:陈梅撰写时间:2019年6月2 日所有代码来源与老师教学这次分享一个好玩的自定义动画效果,这次还是用jQuery做出来的小功能。这次我们先直接看最后已经布局好的效果。把所想写的内容填写到p标签中,给到p标签的动画功能是,页面已执行时,p标签的内容就会渐渐消失。在给一个紫色的div盒子,这个盒子要实现四种动画效果,所以给这四个动画效果一个下拉框,选择..._使用animate方法制作任意动画是什么意思

如何在MonogoDB中查看配置的参数值-程序员宅基地

文章浏览阅读1k次。怎样在MongoDB实现mysql show variables like 'xx';例如:1.查看所有参数值:C:\Users\duansf>mongoMongoDB shell version: 2.6..._查看mongodb 默认参数值

【ACO TSP】基于matlab蚁群算法求解旅行商问题【含Matlab源码 1583期】-程序员宅基地

文章浏览阅读863次。蚁群算法求解旅行商问题完整的代码,方可运行;可提供运行操作视频!适合小白!

随便推点

比较器-程序员宅基地

文章浏览阅读5.3k次,点赞3次,收藏46次。比较器比较器:顾名思义,做比较的。比较两个电压,然后输出高低电平。01不带反相的比较器当Vin>Vref,输出高电平,当Vin<Vref,输出低电平.02带反相的比较器当Vin>Vref,输出低电平,当Vin<Vref,输出高电平.03LM139比较器简化后的内部架构蓝色框:PNP差分放大器。每一边差分级使用达林顿 PNP 晶体管。使用达林顿连接晶..._比较器

如何深入学习c语言,如何深入学习C语言?-程序员宅基地

文章浏览阅读2.1k次。匿名用户1级2016-09-11 回答其实吧,学习C语言是以后从事软件设计的一个基础。任何领域都需要长时间的投入才有结果,你现在学习了C语言,再学习其他语言的时候就比较上手了。在软件设计中:学习一门语言仅仅是第一阶段:如果你基本掌握了一门语言,那么再想深入学习的话就需要把所有C语言的相关的库函数弄懂,并熟练掌握一个开发平台(如最基础的TC)。这是第二阶段下一阶段你就需要继续学习不同的操作系统所提供..._c语言入门后怎么深入

React Native 嵌入到iOS原生项目_ios原生项目嵌入reactnative 模块-程序员宅基地

文章浏览阅读672次。如果你正准备从头开始制作一个新的应用,那么React Native会是个非常好的选择。但如果你只想给现有的原生应用中添加一两个视图或是业务流程,React Native也同样不在话下。只需简单几步,你就可以给原有应用加上新的基于React Native的特性、画面和视图等。https://zjqian.github.io/2017/05/03/rn-integration-iosNative/_ios原生项目嵌入reactnative 模块

猿创征文 |【Ant Design Pro】使用ant design pro做为你的开发模板(五)去除无效代码,生成一个清晰的开发模板_umi 去除代码的lo-程序员宅基地

文章浏览阅读608次。本次终于写到了第五章了,前面四章节,我们从一个全新的 umi3 的ant design pro 模板开始着手,我们以一个初始者要用它的思想介入,逐步走了新增路由、cssmodules、国际化语言切换、使用mock数据进行快速开发、联调正式接口、初始化配置、登录修改、接口文件提取等等。这次到第五章了,我们暂时不做新的改变,我们来把之前写的一些杂项收拾收拾,比如,清除一些不需要的代码,规范一些东西,让我们的项目成为我们的快速开发模板。_umi 去除代码的lo

Andorid源码编译需要掌握的shell语法(三)_android shell脚本语法 :>-程序员宅基地

文章浏览阅读1.2k次。Android 源码编译文件中语法记录_android shell脚本语法 :>

Linux V4L2子系统分析(一)_v4l2_subdev_call-程序员宅基地

文章浏览阅读4.2k次,点赞12次,收藏72次。1.概述Linux系统上的Video设备多种多样,如通过Camera Host控制器接口连接的摄像头,通过USB总线连接的摄像头等。为了兼容更多的硬件,Linux内核抽象了V4L2(Video for Linux Two)子系统。V4L2子系统是Linux内核中关于Video(视频)设备的API接口,是V4L(Video for Linux)子系统的升级版本。V4L2子系统向上为虚拟文件系统提供了统一的接口,应用程序可通过虚拟文件系统访问Video设备。V4L2子系统向下给Video设备提供接口,同时管理_v4l2_subdev_call

推荐文章

热门文章

相关标签