fastJson解析

【FastJSON】FastJSON与jackson带有引用的解析有坑 事情是这样的,我们使用的是FastJSON,但是使用了第三方框架,第三方框架使用的是jackson,然后导致我们传参我们这边看着不是空的,但是对方那边一直是空的。20230929今天遇到一个FastJSON解析,使用引用导致解析错误的问题。我们可以禁用fastjson的引用关系就好了,此时再次运行两者就都有了。这个运行起来测试如下。 阅读详情

Fastjson是一个Java语言编写的高性能功能完善的JSON库。fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson

利用fastjson能利用对象快速的匹配内容,不必再像org.json一样,逐步解析,下面来分析一下这个例子:

json字符串数据模型如下图:


由此只用梳理一下层级关系,以此来定义对应的对象就好了,

由此定义了4个对象:JsonHead,PicSetBean,PicUrl,PicUrlStr其中属性根据结构决定

定义对象时应小心对应定义,如果没有定义正确,将无法解析

public class JsonHead {
private PicSetBean info;      //属性字符串对应(info)
public PicSetBean getInfo() {
		return info;
	}
	public void setInfo(PicSetBean info) {
		this.info = info;
	}
}

public class PicSetBean {
<span style="white-space:pre">	</span>//由于图片上显示picSet下面内容为数组形式,因此定义为数组
	private ArrayList<PicUrl> picSet;    //定义picSet应与图中字符相对应  

	public ArrayList<PicUrl> getPicSet() {    //<span style="font-family: 微软雅黑, 黑体, sans-serif;">PicUrl为下一级对象</span>

		return picSet;
	}

	public void setPicSet(ArrayList<PicUrl> picSet) {
		this.picSet = picSet;
	}
}

public class PicUrl {

	private ArrayList<PicUrlStr> picUrlSet;
	private String albumsName;
	public ArrayList<PicUrlStr> getPicUrlSet() {
		return picUrlSet;
	}

	public void setPicUrlSet(ArrayList<PicUrlStr> picUrlSet) {
		this.picUrlSet = picUrlSet;
	}

	public String getAlbumsName() {
		return albumsName;
	}

	public void setAlbumsName(String albumsName) {
		this.albumsName = albumsName;
	}
	
}

public class PicUrlStr {

	private String picUrl;

	public String getPicUrl() {
		return picUrl;
	}

	public void setPicUrl(String picUrl) {
		this.picUrl = picUrl;
	}

}

下面看下测试代码:

<font size="3"><span style="font-family:微软雅黑, 黑体, sans-serif;color:#313131;"><span style="font-family:微软雅黑, 黑体, sans-serif;color:#313131;"><span style="line-height: 22px; white-space: pre;">		</span><span style="line-height: 22px;">InputStream is = getContext().getAssets().open("json_xx");   //通过流来读取assets中的文件
		
		Reader reader = new InputStreamReader(is,"UTF-8");       //为了尽量不乱码,此处尽量加上utf-8
		BufferedReader br = new BufferedReader(reader);
		String str = null;
		StringBuffer sb = new StringBuffer();
		while((str = br.readLine())!= null){
			sb.append(str);
		}
		
		JsonHead Root = JSONObject.parseObject(sb.toString(), JsonHead.class);      //将文件中读出的数据解析为JsonHend对象
		PicSetBean info = Root.getInfo();        //逐级获取信息

		ArrayList<PicUrl> picSet = info.getPicSet();
		
		for (PicUrl picUrl : picSet) {     //有多项数据时,遍历获取
			String picName = picUrl.getAlbumsName();
			Logs.e("picName--"+picName);
			ArrayList<PicUrlStr> picStr = picUrl.getPicUrlSet();
			for (Iterator iterator = picStr.iterator(); iterator.hasNext();) {     //picUrlSet中数组数据,遍历取出
				PicUrlStr string = (PicUrlStr) iterator.next();
				String pic = string.getPicUrl();
				Logs.d("pic--"+pic);     //</span></span></span>此时打印picUrl所对应的数据<span style="font-family:微软雅黑, 黑体, sans-serif;color:#313131;"><span style="font-family:微软雅黑, 黑体, sans-serif;color:#313131;"><span style="line-height: 22px;">
			}
			
		}
	}</span></span></span></font>

利用fastjson生成json字符串:

此处就利用一下上面PicUrlStr对象来简单介绍一下

<span style="font-size:14px;">PicUrlStr pic = new PicUrlStr();</span>
<span style="font-size:14px;"> pic.setPicUrl("生成json");</span>
<span style="font-size:14px;">String fastJson = JSONObject.toJSONString(pic);        
<span style="white-space: pre;">		</span>Log.d("test", fastJson);  //log打印出来符合json字符串要求    其中key值为对象中属性值<span style="font-family:微软雅黑, 黑体, sans-serif;color:#313131;"><span style="line-height: 22px; background-color: rgb(240, 240, 240);">
</span></span></span>


【FastJSON】FastJSON解析超大json的危害,以及流式解析 最近遇到一个问题,别人的一个程序,发现有一段代码要进行数据解析,字符串转java对象。代码中有这样的一解析,然后小数据量是没问题的,但是这一次出问题了,原因是这个json行数高达100万行,大概有8万个对象。本地调试的时候,代码会直接在这一点卡死,一动不动的。然后本地查看内存的时候会嗖一下内存从150M,上升到2.5G。由此可见大json解析是多么耗费内存。而且程序运行起来会不停的full GC。 阅读详情

相关推荐

ElementUI中的el-table解决宽度问题 - 根据内容自动撑开

在使用element-ui中,会发现表格组件el-table在未指定宽度情况下,会自动计算并给表格宽度赋值。但实际开发中,有时需要根据内容实际长度自动撑开显示,由内容的多少而决定表格的宽度,而不是默认宽度为100%。在默认情况下表格宽度为100%显示,并且列项未指定宽度情况下,剩余部分会平均分配宽度,本案例实际需求是由内容自动撑开显示。componentUpdated

觉醒法师的专栏 1万+

fastjson数据解析实例

FastJson可以把读取到的数据直接解析为对象即可,所以,你可需求知道json的数据格式,然后根据

tqtihihc的专栏 1367

ArcGIS基础实战:面数据拓扑创建和错误修改全流程

通过下图的操作我们可以发现,图层的【Shape_Length】和【Shape_Area】字段的数值都发生了改变,表明两个图层重叠的那一部分图斑合并到另一个图班上,其面积会减小、长度会变大(自己重新计算一下也可以得到此验证结果的)。如图【拓扑实验结果】文件夹里右键,新建【文件地理数据库】,并进行命名为【xx拓扑检查】备注:养成良好的命名习惯。然后在【xx拓扑检查】下右键打开【新建要素数据集】,并对数据集进行命名为【XX拓扑】,然后进行下一步设置。在【KK拓扑】数据集上右键,新建【拓扑】。

yuanYW7556的博客 1万+

FastJson详解

一、Fastjson介绍 Fastjson是一个Java库,可用于将Java对象转换为其JSON表示形式。它还可以用于将JSON字符串转换为等效的Java对象。Fastjson可以与任意Java对象一起使用,包括您没有源代码的现有对象。 关于Json的处理,还有Google开发的Gson包,其他形式的如net.sf.json包,都可以实现json的转换。方法名称不同而已,最后的实现结果都是一样的。...

Lyouths的移动笔记本 9655

注意力机制详解

注意力机制详解Attention机制由来Attention定义Encoder-Decoder框架存在问题:Attenion机制的引入Attention机制的类别Hard AttentionSoft AttentionGlobal AttentionLocal AttentionSelf AttentionMulti-head Attention附录—Transformer全局视角Tensor视角Encoder部分Self-AttentionSelf-Attention向量计算Self-Attention的矩

weixin_43236310的博客 1万+

【WorkBuddy专栏28】WorkBuddy 网页抓取完全实战——从翻车到行云流水

WorkBuddy 网页抓取完全实战——从翻车到行云流水

AI人人懂 1059

【JSON】JSON解析 fastJson框架

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

weixin_40772077的博客 2781

任务混部最少服务器数量计算问题

这里的并行度指的是该任务运行时会占用的服务器数量。要注意的是,一个服务器在每个时刻可以被任意任务使用,但同一时刻最多只能被一个任务占用,并且任务运行结束后会立即释放服务器(结束时刻不占用)。最后,我们从字典中找出服务器数量的最大值,这个最大值就是完成这批任务混部最少需要的服务器数量。对于每个任务,我们会遍历其对应的时间区间,将该任务的并行度累加到对应时刻的服务器数量上。任务混部的目标是让这批任务由同一批服务器承载运行,你需要计算完成这批任务混部最少需要多少服务器,以此来最大化控制资源成本。

m0_62153576的博客 108

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

SAP S/4HANA Public Cloud 的 Development Tenant 深度解析

在传统的 SAP On-Premise 版本中,企业通常拥有完整的开发、测试、生产环境,开发人员可以直接访问 ABAP 代码,进行深度定制。然而,S/4HANA Public Cloud 采用了标准化的 SaaS 模型,不允许用户直接修改核心代码。因此,SAP 提供了一种新的开发方式,即 Development Tenant,允许企业在不破坏核心系统稳定性的前提下,实现个性化扩展。Development Tenant 主要用于 SAP S/4HANA Public Cloud 的扩展开发。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 849

YOLOv13添加轻量化的EMA模块Faster_EMA,轻量又涨点!map50提升4.56个点,召回率提升9.66!

本文介绍了YOLOv13模型的优化移植方法,通过添加Faster_EMA模块和超参数调整,使模型性能显著提升。主要修改包括:1) 创建新的模型配置文件yolov13-Faster_EMA.yaml;2) 在tasks.py中添加新模块;3) 修改__init__.py和block.py文件,新增Partial_conv3和DropPath类。优化后模型mAP50提升4.56%,召回率提升9.66%,验证了改进方案的有效性。代码实现了局部卷积和随机深度等先进技术,为YOLO系列模型性能优化提供了新思路。

FJN110的博客 2605

java fastjson 解析json

给大家整理了一些有关【F,JS】的项目学习资料(附讲解~~):https://edu.51cto.com/course/27963.htmlhttps://edu.51cto.com/course/33944.htmlJava Fastjson 解析 JSON 教程 作为一名新入行的开发者,学习如何在 Java 中使用...

weixin_36587269的博客 319

【数据集实例】CMIP6气候模式数据下载-以河东地区为例

以河东地区为例,介绍CMIP6数据下载及处理

WW、forever的博客 4945

android 使用fastjson解析json数据

在build.gradle添加fastjson的依赖 dependencies { ...... compile 'com.alibaba:fastjson:1.2.21' } 现有一个json字符串,格式如下 { 'msg': '返回的数据', 'code': 200, 'list': [{ 'name': '张三', 'ID': 1 }, { 'n...

JohnLiu的博客 4329

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

scala 递归解析fastjson

scala 递归解析fastjson import com.alibaba.fastjson.{JSON, JSONArray, JSONObject} import scala.collection.mutable /** * @Auther xxxx * @Date 2020-10-30 1:38 下午 */ object JsonUtil { def analysis(jsonObject: JSONObject): mutable.HashMap[String, AnyRef

xjxjin的博客 388

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

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

java fastjson2 解析JSON用法解析

你可以为Fastjson2设置自定义的日期格式,通过配置。// 设置自定义日期格式 SerializeConfig config = new SerializeConfig();// 将日期对象转换为 JSON 字符串 String jsonString = JSON . toJSONString(date , config);// 输出: 2025-01-13 14:30:00 } }

cheng_ji的专栏 2329

java fastjson 解析_Java的Json解析包FastJson使用

package com.test;public class TestPerson {private int age;private String name;public TestPerson(){}public TestPerson(int age,String name){this.age=age;this.name=name;}public int getAge() {return age;}...

weixin_33218612的博客 268

fastjson解析多层数据_FastJSON数据解析

先看个实际开发中的数据示例,解析如下JSON数据(JSON对象和数组的多层嵌套){"deadline": "2020-12-29T16:00:00.000Z","content": [{"type": "edit","month": 12,"plans": [{"planName": "12-1 天生我材必有用,千金散尽还复来。","planDeadline": "2020-12-15T01:40...

weixin_31893893的博客 1390

java fastjson 解析_Java对【JSON数据的解析】--fastjson解析法

要求:解析下面JSON数据String string = “{no:1,name:’Android’,employees:[{name:’zhangsan’,age:20},{name:’lisi’,age:21},{name:’wangwu’,age:22}]}”;代码:package com.qf.demo4;import java.util.ArrayList;import com.alib...

weixin_42349769的博客 348

fastjson解析多层数据_【第16篇】通过fastjson去解析json数组数据

编程之家收集整理的这篇文章主要介绍了【第16篇】通过fastjson去解析json数组数据,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。package ivyy.taobao.com.domain.fastjson;import java.util.Iterator;import com.alibaba.fastjson.JSONArray;import com.alibaba.f...

weixin_42501373的博客 771

java fastjson 解析_java使用FastJson解析Json数据

fastjson 是一个性能极好的用 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。主要特点:快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson)强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)零依赖(没有依赖其它任何类库除了JDK)一 、生成Json:JavaBean、List...

weixin_27215337的博客 635

fastjson转list嵌套_Fastjson解析嵌套Map例子

由于在实际工作中使用fastjson解析嵌套map的场景非常多,所以在此备忘一下:引入阿里的fastjson的pom:com.alibabafastjson1.2.15一个比较复杂的json例子:{"actId": "1800025","originCode": 1,"role": "TEACHER","time": 1471077017804,"userId": "1111","userName...

weixin_29023805的博客 843

fastjson解析json数组

import java.util.ArrayList; import java.util.List; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.montnets.ott.entity.weix.OtWeiBatchgetMaterial; import com....

csdnofzyk的专栏 5490
上一篇: json解析
下一篇: Gson解析
small_technical
博客等级 码龄11年 9粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值