json小结和fastjson包的实际json操作

Json和FastJson对比 FastJson比较快,还有就是他是第三方所提供所以要导入其他包。 下面来看一个example当中的一段代码 public static T getStudent(String jsonString,Class cls) //对于泛型的使用也就是说既然是泛型,那么前面必须加T。 //在这个位置不禁有朋友会问了,为什么要Class呢,为什么要加泛型 //我们从api里可以得知parse 阅读详情
工作中,需要处理与另一方系统数据交换的问题,采用的是调用远程接口的方法,数据格式选择的是json,今天就来聊一聊json,主要分析json数据和java Bean之间的转换问题。
一、json是什么
json,全称是JavaScript Object Notation,中文翻译是JS对象标记语言,是一种轻量级的数据交换格式,易于开发人员编写和阅读,也易于机器进行生成和解析。
二、json数据结构
1、可以存储对象(Object),使用花括号 { } 包含的键值对结构,key必须是string类型,value为任何基本类型或数据结构。
2、可以存储数组(Array),使用中括号 [ ] 来起始,并用逗号 , 来分割元素。
3、可以存储String类型、number类型(整型、浮点型)、Boolean类型(true、false)和null(使用null时可以先定义一个Object为null)。
三、语法

1、普通键值对。

{"name":"小川94","age":18,"gender":"boy","hasGirlFriend":false}

2、存储对象。

{"name":"小川94","age":18,"gender":"boy","hasGirlFriend":false}

3、存储数组。

{"name":"小川94","age":18,"gender":"boy","hasGirlFriend":false,"interest":["coding","reading"]}

4、对象加数组复合。

{"name":"小川94","age":18,"gender":"boy","hasGirlFriend":false,"interest":["coding","reading"]}

四、准备工作
1、开发系统:win7 64位。
2、开发环境:jdk1.8。
3、开发语言:java。
4、开发工具:eclipse。

5、fastjson的jar包:我使用的是maven的pom.xml文件配置

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.4</version>
</dependency>

五、使用阿里的 fastjson 工具包对json进行实际操作

1、构建实体类

public class Person {
	public String name;
	public int age;
	public String gender;
	public String interest;
	public boolean hasGirlFriend;
	
	public Person(){}
	public Person(String name, int age, String gender, String interest, boolean hasGirlFriend) {
		super();
		this.name = name;
		this.age = age;
		this.gender = gender;
		this.interest = interest;
		this.hasGirlFriend = hasGirlFriend;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public String getInterest() {
		return interest;
	}
	public void setInterest(String interest) {
		this.interest = interest;
	}
	public boolean isHasGirlFriend() {
		return hasGirlFriend;
	}
	public void setHasGirlFriend(boolean hasGirlFriend) {
		this.hasGirlFriend = hasGirlFriend;
	}
}
2、编写工具类。

import java.util.HashMap;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class JsonUtils {
	
	/**
	 * 将json字符串转为json对象
	 * @param jsonStr json字符串
	 * @return
	 */
	public static JSONObject changeStringToJson(String jsonStr){
		JSONObject jo = JSON.parseObject(jsonStr);
		return jo;
	}
	
	/**
	 * 将json字符串数组转为json数组对象
	 * @param jsonStr json字符串
	 * @return
	 */
	public static JSONArray changeStringToArray(String jsonStr){
		JSONObject jo = JSON.parseObject(jsonStr);
		if( !jo.containsKey("person") ){
			return null;
		}
		String strArray = jo.getString("person");
		JSONArray ja = JSONArray.parseArray(strArray);
		return ja;
	}
	
	/**
	 * 将json字符串转为java Bean对象
	 * @param jsonStr json字符串
	 * @return
	 */
	public static Person changeJsonToBean(String jsonStr){
		Person person = JSON.parseObject(jsonStr, Person.class);
		return person;
	}
	
	/**
	 * 将java Bean对象转为json对象
	 * @param person java Bean对象
	 * @return
	 */
	public static JSONObject changeBeanToJson(Person person){
		JSONObject jo = (JSONObject)JSON.toJSON(person);
		return jo;
	}
	
	/**
	 * 将json字符串转为Map
	 * @param jsonStr json字符串
	 * @return
	 */
	public static Map<String,Object> changeJsonToMap(String jsonStr){
		Map<String,Object> map = new HashMap<String,Object>();
		JSONObject jo = JSON.parseObject(jsonStr);
		for(String str : jo.keySet()){
			map.put(str, jo.get(str));
		}
		return map;
	}
}
3、编写测试用例。
package testDay02;

import java.util.Map;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import day02.JsonUtils;
import day02.Person;
import day02.ReadXml;
import junit.framework.*;

public class TestUnit01 extends TestCase {

	protected long startTime;
	protected long endTime;
	
	public static final String JSON_TO_BEAN = "{"
			+ "'name':'小川94',"
			+ "'age':18,"
			+ "'gender':'boy',"
			+ "'hasGirlFriend':false,"
			+ "'interest':'coding'"
			+ "}";
	
	public static String str = "{\"person\":{"
			+ "\"name\":\"小川94\",\"age\":18,\"gender\":\"boy\","
			+ "\"hasGirlFriend\":false,\"interest\":\"coding\"}}";
	
	public static String strArray = "{\"person\":["
			+ "{\"name\":\"小川94_2号\"},{\"name\":\"小川94_3号\"}]}";
	
	@Before
	public void setUp() throws Exception {
		this.startTime= System.currentTimeMillis();
		System.out.println("=========开始测试===========");
	}
	
	@After
	public void tearDown() throws Exception {
		this.endTime = System.currentTimeMillis();
		System.out.println("测试用时:"+(endTime-startTime));
		System.out.println("=========测试结束===========");
	}
	
	@Test
	public void testChangePersonToBean(){
		Person person = JsonUtils.changeJsonToBean(JSON_TO_BEAN);
		System.out.println(person);
		System.out.println("姓名:"+person.getName());
		System.out.println("年龄:"+person.getAge());
		System.out.println("性别:"+person.getGender());
	}
	
	@Test
	public void testChangeBeanToJson(){
		Person person = new Person();
		person.setName("小川94");
		person.setAge(18);
		person.setGender("boy");
		person.setHasGirlFriend(false);
		person.setInterest("coding");
		JSONObject jo = JsonUtils.changeBeanToJson(person);
		System.out.println(jo);
	}
	
	@Test
	public void testChageJsonToMap(){
		Map<String,Object> map = JsonUtils.changeJsonToMap(JSON_TO_BEAN);
		System.out.println(map);
	}
	
	@Test
	public void testChangeStringToJson(){
		JSONObject jo = JsonUtils.changeStringToJson(str);
		System.out.println(jo);
	}
	
	@Test
	public void testChangeStringToArray(){
		JSONArray ja = JsonUtils.changeStringToArray(strArray);
		System.out.println(ja);
		System.out.println(ja.get(0));
	}
	
}
4、运行结果

=========开始测试===========
{"person":{"gender":"boy","interest":"coding","name":"小川94","hasGirlFriend":false,"age":18}}
测试用时:965
=========测试结束===========
=========开始测试===========
{"name":"小川94","gender":"boy","hasGirlFriend":false,"interest":"coding","age":18}
测试用时:118
=========测试结束===========
=========开始测试===========
[{"name":"小川94_2号"},{"name":"小川94_3号"}]
{"name":"小川94_2号"}
测试用时:5
=========测试结束===========
=========开始测试===========
day02.Person@2fc14f68
姓名:小川94
年龄:18
性别:boy
测试用时:25
=========测试结束===========
=========开始测试===========
{gender=boy, interest=coding, name=小川94, hasGirlFriend=false, age=18}
测试用时:6
=========测试结束===========

文章首发于我的个人公众号:悦乐书。喜欢分享一路上听过的歌,看过的电影,读过的书,敲过的代码,深夜的沉思。期待你的关注!


高效C# JSON处理:FastJSON 1.9.8包简介 FastJSON是由阿里巴巴开源社区贡献的一个轻量级JSON解析库,它允许Java应用程序轻松地将JSON数据与Java对象进行转换。FastJSON具备简洁高效、性能优异的特点,广泛应用于Web服务、数据交换等场景中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但JSON是独立于语言的,很多编程语言都实现了对JSON的支持。在.NET中,实现。 阅读详情

相关推荐

SPARTAN6 + Verilog - FPGA step by step 从0开始学习(1)

SPARTAN6 + Verilog - FPGA step by step 从0开始学习(1)Step 1 软件安装Step 2 硬件获取Step 3 开始从头到脚建一个工程Step 3.1 新建一个工程 从0开始学习FPGA,最好的办法就是先建一个最简单的模块,并且跑起来,然后再慢慢展开。下面这个例子是要按照一定的周期点亮核心板上的一个led。 Step 1 软件安装 这个从0开始学习是用的xilinx的SPARTAN6。SPARTAN6集成开发环境用ISE,不能用Vivado,各自对应的版本不同。安装

xfacexx点点记录 5517

json 之 FastJSON (阿里巴巴)

一、引入pom.xml 依赖 &lt;!-- 二、fastjson : FastJSON是阿里巴巴的产品,效率最高 --&gt; &lt;dependency&gt; &lt;groupId&gt;com.alibaba&lt;/groupId&gt; &lt;artifactId&gt;fastjson&lt;/artifactId&gt; &lt;version&gt

ws - 兮的博客空间 756

【Lane】 Ultra-Fast-Lane-Detection 复现

引言 车道线检测源码复现以及训练自己的数据集 1 环境搭建 conda create -n lane python=3.7 conda activate lane # 激活环境 conda install pytorch torchvision cudatoolkit=10.1 -c pytorch pip install -r requirements.txt 2 下载项目源码 若在服务器上可以用指令下载,否则直接在网址中下载 git clone https://github.com/cfzd/U

qq_44703886的博客 2万+

使用fastjson处理常见的json问题

需要导入的包 import com.alibaba.fastjson.JSONObject; 要处理的json字符串: { “gradle”:“高一”, “number”:“2”, “people”:[{“name”:“张三”,“age”:“15”,“phone”:“123456”}, {“name”:“李四”,“age”:“16”,“phone”:“78945”}] } 下面对此json字符串进...

西凉的悲伤博客 1743

打开UG会安装报错:initialization internal ERROR 的提示框,提示line 1344 of错误的解决方案

打开UG会安装报错:initialization internal ERROR 的提示框,提示line 1344 of错误的解决方案

Q82556499的博客 3523

PX4/ArduPilot源码克隆提速秘籍:国内镜像与子模块优化全攻略

本文详细介绍了PX4/ArduPilot源码克隆的提速秘籍,包括使用国内镜像源和子模块优化技巧。通过阿木实验室、华为云等国内镜像,克隆速度可提升20倍,同时提供子模块替换和并行编译等实用方法,大幅提升开发效率。

weixin_29251567的博客 525

Alibaba Fastjson——超好用的JOSN解析库

Json是一种轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 现在主流的对象与 JSON 互转的工具很多,这里介绍的是阿里巴巴的开源库 - Fastjson。Fastjson是一个Java库,可用于将Java对象转换为其JSON表示。它还可用于将JS...

小马同学 3万+

MTK眼中6G物理层与无线协议的进化之路

提议统一波束和小区级的测量、报告和切换框架/流程,进一步减少移动性切换过程中的中断,采用可扩展框架/流程,允许在不同移动性场景中进行部分用户设备配置更新以实现快速切换,支持用户设备发起的移动性(同步/切换)以降低延迟和因信令交换导致的失败,设计移动性RS以实现空闲状态下的节能和连接状态下的无缝用户体验,实现5G/6G间的无缝互操作移动性,为固定无线接入(FWA)提供潜在增强,构建统一的跨层移动性框架以降低复杂度、减少中断和失败。为适应多样化的流量类型,需要灵活的帧结构和高层时间对齐。

asd199086的博客 1749

使用.alibaba.fastjson包进行json数据的转换!

参考:https://www.cnblogs.com/cdf-opensource-007/p/7106018.html 以下是对于json简单的格式和数据格式,还有就是包含前2种格式的第三格式 package Fastjson; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import c...

weixin_41244495的博客 1760

Unity游戏开发客户端C#基础

初级Unity客户端开发工程师 面经 之 C#篇

Sea3752的博客 2万+

LVGL在单色屏上运行

本文主要讲述LVGL在单色屏应用中的实现思路,并已验证通过。网上关于lvgl移植的文章有很多了,本文不加以赘述。

weixin_43278295的博客 4465

阿里巴巴的FastJSON解析JSON例子,超级好用。

import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; public class testJson {     /**      * @param args      */     public static void main(String[] arg

dwzjs的专栏 6102

Unity 实战项目 ☀️| 只用一个脚本做一个 刮刮乐 案例,一不小心刮出来一个女朋友!【学习娱乐一下】

只用一个脚本做一个刮刮乐,一不小心刮出来一个女朋友!【学习娱乐一下!】

努力前行,总会成为自己心中的那道光 23万+

fastjson和json对比。fastjson快速入门。

快速预览1. 什么是fastjson2. 什么是JSON3.fastjson如何使用3.1 创建demo3.2 将javaBean转化为JSON字符串3.3 将JSON字符串转化为JavaBean3.4 将JavaBean转化为JSON对象3.5 将JSON对象转化为JavaBean3.6 将JavaBean集合转化为JsonArray3.7 将JSONArray转化为JavaBean集合3.8 将JSON对象转化为JSON字符串3.9 将JSON字符串转化为JSON对象3.10 将JSON字符串转化为JS

weixin_44000753的博客 2426

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Fastjson中关于json的处理与配置

String str = "{\"age\":\"年龄\",\"name\":\"姓名\",\"time\":\"2023-12-22T15:51:01.993\"}";String arrayStr = "[{\"age\":\"年龄\",\"name\":\"姓名\",\"time\":\"2023-12-22T15:51:01.993\"},{\"age\":\"年龄\",\"name\":\"姓名\",\"time\":\"2023-12-22T15:51:01.993\"}]";

kkkkatoq的博客 3430

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

fastjson解析json数据

一:测试json数据如下: { 'cat':'it', 'language':[ {'id':1,'ide':'eclipse','name':'Java'}, {'id':2,'ide':'XCode','name':'Swift'}, {'id':3,'ide':'Visual Stdio','name':'C#'} ...

无名小卒菜的博客 6986

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

com.alibaba.fastjson.JSON 操作

Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。 public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray public static final JSONObject parseObject(...

m0_37598340的博客 1万+

【JSON】JSON解析 fastJson框架

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。​简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。​易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

weixin_40772077的博客 2781

Json详解以及fastjson使用教程

Json是一种轻量级的数据交换格式,采用一种“键:值”对的文本格式来存储和表示数据,在系统交换数据过程中常常被使用,是一种理想的数据交换语言。在使用Java做Web开发时,不可避免的会遇到Json的使用。下面我们就简单讲一下Json的使用以及fastjson.jar包的使用。 一:JSON形式与语法 1.1:JSON对象 我们先来看以下数据: { "ID": 1001, "name"...

srj1095530512的博客 22万+

探究的官方JSON与阿里的fastjson中put操作

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33901641的博客 1431

高性能 JSON 处理:为何选择 Fastjson?

Fastjson 是由阿里巴巴集团开发的一个高性能的 JSON 处理库,它支持 Java 对象与 JSON 字符串之间的互相转换。

qq_17153885的博客 2016

快速入门:使用Fastjson进行JSON操作

通过了解JSON和Fastjson的概念,以及构建JSON对象和解析JSON的方法,您现在可以更加灵活和高效地处理JSON数据了。Fastjson是一个开源的Java库,它提供了一组强大的API,用于处理JSON数据。JSON类提供了将对象序列化为JSON字符串和将JSON字符串反序列化为对象的方法。JSONObject类则提供了对JSON对象的操作方法,比如判断是否包含指定的键值对、获取指定键的值等。要解析JSON对象,您可以使用JSONObject类提供的方法来获取指定键的值。

adobe754的博客 1114

java读取json文件全流程(包含下载包和导入包)

本文教程使用fastjson处理json文件,其他的包可以自行百度 下载fastjson包 (其他的包也在该网站搜索下载) eclipse导入包 注意要导入到Classpath,否则会出现java.lang.NoClassDefFoundError错误 json文件读取为string public String JsonToString() { // 读取JSON数据到 jsonStr ...

Edith的博客 1325

使用fastjson进行json字符串和List的转换

使用fastjson进行自定义类的列表和字符串转换   1.环境   jdk1.8,fastjson   2.pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="h

neutron117的博客 8万+

Java的Json解析包FastJson使用

阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征: 速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson; 功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开...

qq_41084324的博客 1323
上一篇: 2017年那些事儿
下一篇: Java入门(一):Hello World !
程序员小川
博客等级 码龄10年 47粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值