Skip to content

based on Gson's parsing library, perform fault-tolerant processing on basic types (without causing the entire json parsing to fail due to a field type errors)

License

Notifications You must be signed in to change notification settings

YangLang116/IKGson

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5873a96 · Dec 21, 2017
Sep 30, 2012
Sep 14, 2016
Jun 23, 2017
Aug 24, 2017
Sep 1, 2008
Aug 27, 2012
Mar 17, 2017
Oct 4, 2015
Jun 18, 2015
May 31, 2017
Mar 23, 2017
Nov 27, 2015
Dec 21, 2017
Mar 25, 2016
Mar 21, 2017
May 31, 2017

Repository files navigation

1. 说明

改造后的Gson库,在非Debug模式下对常用的数据类型进行容错处理(某一个字段由于数据类型不匹配,采用默认值处理)

  • 集成方式

直接下载使用项目工程中IKGson.jar文件即可

  • 开启容错模式
 if (BuildConfig.DEBUG)
 {
    Gson.StrictMode = true;
 }

2. 容错模式下常用类型采用的默认值

类型 默认值
byte 0
short 0
int 0
long 0
float 0.0
double 0.0
chat '0'
String ""
Boolean false
Array(数组) {} 空数据,非null
List(集合) [] 空集合,非null

3. 测试的Json数据:

  "gifts":
  {
    "name": "xxx",
    "gold":20,
    "cl":[1,2,3],
    "gid":154,
    "c":100,
    "mshort":45,
    "mfloat":15,
    "mdouble":1,
    "boolean":true,
    "mchar":'c'
  }

4. JavaBean对象类

/**
 * Created by xxx on 2017/8/21.
 */
public class Gift {

    public String name;
    public int gold;
    public int[] cl;
    public long gid;
    public byte c;
    public short mshort;
    public float mfloat;
    public double mdouble;
    public boolean mboolean;
    public char mchar;
}

5. 各类型异常数据测试:

> 1. Byte类型的测试:

测试类型 测试用例 测试结果
单引号数据 '10','asd' c=10, c=0
双引号数据 "10", "asd" c=10, c= 0
裸露数据 asd, [], {} c = 0
空类型数据 null, "null", 'null' c = 0
大数数据 1000000000000000 c = 0

> 2. Int类型的测试:

测试类型 测试用例 测试结果
单引号数据 '10','asd' c=10, c=0
双引号数据 "10", "asd" c=10, c= 0
裸露数据 asd, [], {} c = 0
空类型数据 null, "null", 'null' c = 0
大数数据 1000000000000000 c = -1530494976

> 3. Short类型的测试:

测试类型 测试用例 测试结果
单引号数据 '10','asd' c=10, c=0
双引号数据 "10", "asd" c=10, c= 0
裸露数据 asd, [], {} c = 0
空类型数据 null, "null", 'null' c = 0
大数数据 1000000000000000 c = -32768

> 4. Long类型的测试:

测试类型 测试用例 测试结果
单引号数据 '10','asd' c=10, c=0
双引号数据 "10", "asd" c=10, c= 0
裸露数据 asd, [], {} c = 0
空类型数据 null, "null", 'null' c = 0
大数数据 1000000000000000 c = 1000000000000000

> 5. Float类型的测试:

测试类型 测试用例 测试结果
单引号数据 '10','asd' c=10.0, c=0.0
双引号数据 "10", "asd" c=10.0, c= 0.0
裸露数据 asd, [], {} c = 0.0
空类型数据 null, "null", 'null' c = 0.0
大数数据 1000000000000000 c = 9.9999999E14

> 6. Double类型的数据测试:

测试类型 测试用例 测试结果
单引号数据 '10','asd' c=10.0, c=0.0
双引号数据 "10", "asd" c=10.0, c= 0.0
裸露数据 asd, [], {} c = 0.0
空类型数据 null, "null", 'null' c = 0.0
大数数据 1000000000000000 c = 1.0E15

> 7. Char类型的数据测试:

测试类型 测试用例 测试结果
单引号数据 '10','asd' c='1', c='a'
双引号数据 "10", "asd" c= '1', c= 'a'
裸露数据 asd, [], {} c = 'a', c = '0',c = '0'
空类型数据 null, "null", 'null' c = , c= 'n', c = 'n'
大数数据 1000000000000000 c = 1

> 8. String类型的数据测试:

测试类型 测试用例 测试结果
单引号数据 '10','asd' c='10', c='asd'
双引号数据 "10", "asd" c= '10', c= 'asd'
裸露数据 asd, [], {} c = 'asd', c = '',c = ''
空类型数据 null, "null", 'null' c = null, c= 'null', c = 'null'
大数数据 1000000000000000 c = '1000000000000000'

> 9. Boolean类型的数据测试:

测试类型 测试用例 测试结果
单引号数据 '10','asd' c= false
双引号数据 "10", "asd" c= false
裸露数据 asd, [], {} c = false
空类型数据 null, "null", 'null' c = false
大数数据 1000000000000000 c = false

> 10. 数组类型的数据测试:

测试类型 测试用例 测试结果
单引号数据 "asd" c =[]
双引号数 '10' c = []
裸露数据 1 c= []
空数据 null c= null

> 11. 集合类型的数据测试:

测试类型 测试用例 测试结果
单引号数据 "asd" c = []
双引号数 '10' c = []
裸露数据 1 c= []
空数据 null c= null

About

based on Gson's parsing library, perform fault-tolerant processing on basic types (without causing the entire json parsing to fail due to a field type errors)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages