关于JSON数据体积优化的一点小心得

最近在做的一个项目里传输的json数据比较大,造成了线程间的卡顿,于是想优化一下json数据的体积。

可以看到在json文件里有很多无用的字段,这些字段占据了大量的存储空间。

对数据的结构作一下优化,如下

将对象的key值单独存在一个数组里,value值存在另一个数组。

调整数据结构后体积的变化也非常明显,减少了40%的体积。

原文地址:https://www.cnblogs.com/BlackFungus/p/12315136.html

时间: 2024-11-13 06:37:08

关于JSON数据体积优化的一点小心得的相关文章

学习KMP算法的一点小心得

KMP算法应用于 在一篇有n个字母的文档中 查找某个想要查找的长度为m的单词:暴力枚举:从文档的前m个字母和单词对比,然后是第2到m+1个,然后是第3到m+2个:这样算法复杂度最坏就达到了O(m*n),对于大数据肯定不行.KMP算法的精髓即设法减少不必要的枚举次数,举个例子:比如已经匹配好了单词的前k-1个字母:但第k个字母无法匹配了:那么如果前k-1个字母中存在类似回文的情况(前i个字母组成的子串和后i个字母组成的子串相同),那么指针j就变成i(相当于整体往右移动),这样来达到减少枚举次数的目

一点小心得

项目中会遇到这样的逻辑处理:根据不同类型调用不同的方法,通常会用到if else等语句,感觉不太好: 1,应该面向接口编程 2,尽量避免使用if语句 实例:原来代码,接口Iservice的实现类有 ServiceA ,ServiceB,ServiceC public static void main(String[] args) { String type = "C"; Iservice service = null; if (type.equals("A")) {

json数据解析重要的一点

今天在讨论json数据时,又学到了一点.因为平时都忽略了.所以打个笔记记下来:json的解析方法共有兩種:1. eval() ; 2.JSON.parse(). //第一种eval的使用var evalJson = eval('(' + jsonstr + ')');// 第二种JSON.parsevar JSONParseJson = JSON.parse(jsonstr); 重点!!!两者的区别:  var parse_json_by_eval = function(str) {      

ASP.NET MVC Autofac依赖注入的一点小心得(包含特性注入)

前言 IOC的重要性 大家都清楚..便利也都知道..新的ASP.NET Core也大量使用了这种手法.. 一直憋着没写ASP.NET Core的文章..还是怕误导大家.. 今天这篇也不是讲Core的 前面写了C#开发移动应用系列  就第一篇和最后一篇上了最多推荐 - -  也许大家确实不看好吧.. 算了..废话不多说.开始今天的东西吧.. 本篇文章不讲为何我们要用IOC..只讲Autofac使用中的一些小心得 正文 1.基本注入 首先我们要构造一个容器,代码如下: //第一步: 构造一个Auto

SPOOL、SQLLOADER数据导出导入的一点小总结

1.SQLLOADER的CONTROL文件 //********************************************************************************//基本格式:LOAD DATA INFILE 'T.DAT' // 要导入的数据文件(格式1) //INFILE 'TT.DAT' // 导入多个文件(可以和格式1并列使用) //INFILE * // 要导入的内容就在CONTROL文件里 下面的BEGINDATA后面就是导入的内容(和格

Android JSON数据的解析与封装小Demo

今天早早的下班了,写了一个简单的JSON Demo,这里总结一下. 首先是效果图: 简单起见,解析部分并没有采用解析URL的方式,直接把JSON写到String里,逻辑比较简单,这里就不啰嗦了,上代码: package com.example.jsondemo; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; imp

python+tesseract验证码识别的一点小心得

由于公司需要,最近开始学习验证码的识别 我选用的是tesseract-ocr进行识别,据说以前是惠普公司开发的排名前三的,现在开源了.到目前为止已经出到3.0.2了 当然了,前期我们还是需要对验证码进行一些操作,让他对机器更友好,这样才能提高识别率. 步骤基本上是这样的 第一步对验证码进行灰度图以及二值化 需要用到pil库可以pip下载 代码如下 def binarization(image): #转成灰度图 imgry = image.convert('L') #二值化,阈值可以根据情况修改

IOS之block,一点小心得

作为一个iOS开发程序员,没用过block是不可能的.这次我探讨的是block原理,但是有些更深层次的东西,我也不是很清楚,以后随着更加了解block将会慢慢完善. 第一个问题,什么是block? 我们都会用block,但是block是什么呢,这是首先要弄清楚的概念.虽然,是什么并不影响我们用它,但是搞清楚原理我们才能更好的去使用它,我觉得作为一个程序员,需要时刻保持对事物原理追究的心态? block的是本质是对象.但是你也可以说它是代码块.闭包.内联函数.函数指针...还有很多叫法,也可能这里

卷积学习的一点小心得

在信号的时域分析中,最为重要的就是信号通过线性时不变系统,即时域卷积计算.先来回顾一下线性时不变系统的定义: \[ \begin{array}{l} If{\rm{ }}x(t) \Rightarrow y(t){\rm{ :}}\a{x_1}(t) + b{x_2}(t) \Rightarrow a{y_1}(t) + b{y_2}(t)\x(t - {t_0}) \Rightarrow y(t - {t_0}) \end{array} \tag{1-1} \] 物理可实现的系统绝大多数均满足