3. 使用参考

3.1. 静态方法

3.1.1. OKJSON.getErrorCode

方法原型 Integer getErrorCode();
方法说明 当JSON解析或生成失败后,调用此方法获取错误码
返回值 最近错误码

3.1.2. OKJSON.getErrorDesc

方法原型 String getErrorDesc();
方法说明 当JSON解析或生成失败后,调用此方法获取错误描述
返回值 最近错误描述

3.1.3. OKJSON.stringToObject

方法原型 T stringToObject( String jsonString, Class clazz, int options );
方法说明 映射JSON字符串中的字段数据到实体类属性
参数 String jsonString : JSON字符串
Class clazz : 实体类类型
int options : 映射选项
返回值 不等于null : 映射成功,得到实体类对象
等于null : 映射失败

映射选项 说明
OKJSON.OPTIONS_DIRECT_ACCESS_PROPERTY_ENABLE 优先直接赋值属性值,否则优先调用setter赋值属性值
OKJSON.OPTIONS_STRICT_POLICY 当JSON字段类型与实体类属性类型不一致,或JSON字段名在实体类属性列表中找不到等警告事件时中断报错,否则忽视

错误码 错误原因说明
OKJSON_ERROR_END_OF_BUFFER 不完整的JSON
OKJSON_ERROR_UNEXPECT 出现不期望的字符
OKJSON_ERROR_EXCEPTION 发生异常
OKJSON_ERROR_INVALID_BYTE 无效字符
OKJSON_ERROR_FIND_FIRST_LEFT_BRACE JSON首个非白字符不是’{‘
OKJSON_ERROR_NAME_INVALID JSON的KEY名字非法
OKJSON_ERROR_EXPECT_COLON_AFTER_NAME 在KEY名字后不是’:’
OKJSON_ERROR_UNEXPECT_TOKEN_AFTER_LEFT_BRACE 在’{‘后非法分词
OKJSON_ERROR_PORPERTY_TYPE_NOT_MATCH_IN_OBJECT 没有JSON字段类型对应的实体类属性类型
OKJSON_ERROR_NAME_NOT_FOUND_IN_OBJECT JSON字段名在实体类属性列表中找不到
OKJSON_ERROR_NEW_OBJECT 创建对象失败

3.1.4. OKJSON.fileToObject

方法原型 T fileToObject( String filePath, Class clazz, int options );
方法说明 映射JSON字符串中的字段数据到实体类属性
参数 String filePath : JSON文件名
Class clazz : 实体类类型
int options : 映射选项
返回值 不等于null : 映射成功,得到实体类对象
等于null : 映射失败

(映射选项和错误码说明同上)

3.1.5. OKJSON.objectToString

方法原型 String objectToString( Object object, int options );
方法说明 映射实体类属性生成JSON字符串
参数 Object object : 实体类
int options : 映射选项
返回值 不等于null : 生成JSON字符串成功
等于null : 生成失败

映射选项 说明
OKJSON.OPTIONS_DIRECT_ACCESS_PROPERTY_ENABLE 优先直接赋值属性值,否则优先调用setter赋值属性值
OKJSON.OPTIONS_PRETTY_FORMAT_ENABLE 以缩进风格生成JSON,否则按紧凑风格

错误码 错误原因说明
OKJSON_ERROR_END_OF_BUFFER 不完整的JSON
OKJSON_ERROR_EXCEPTION 发生异常
OKJSON_ERROR_NEW_OBJECT 创建对象失败

3.1.6. OKJSON.objectToFile

方法原型 int objectToFile( Object object, String filePath, int options );
方法说明 映射实体类属性生成JSON字符串写到文件中
参数 Object object : 实体类
String filePath : JSON文件名
int options : 映射选项
返回值 等于0 : 生成或写文件成功
不等于0 : 生成或写文件失败

(映射选项和错误码说明同上)

3.2. JSON字段类型与实体类属性类型映射表

JSON字段类型 JSON示例 实体类属性类型
字符串 “…” String
整型数字 123 Byte或byte
整型数字 123 Short或short
整型数字 123 Integer或int
整型数字 123 Long或long
浮点数字 123.456 Float或float
浮点数字 123.456 Double或double
布尔值 true/false Boolean或boolean
字符串 “…” LocalDate
字符串 “…” LocalTime
字符串 “…” LocalDateTime
数组 […] ArrayList
数组 […] LinkedList
JSON树枝 {…} JAVA对象

如:

  1. public class DemoUserClass {
  2. String userName ;
  3. String email ;
  4. }

如:

  1. public class DemoUserClass {
  2. ...
  3. UserExtInfo userExtInfo ;
  4. ...
  5. }
  6. class UserExtInfo {
  7. String gender ;
  8. int age ;
  9. String address ;
  10. }

如:

  1. public class DemoUserClass {
  2. ...
  3. LinkedList<BorrowDetail> borrowDetailList ;
  4. }
  5. class BorrowDetail {
  6. String bookName ;
  7. String author ;
  8. @OkJsonDateTimeFormatter(format="yyyy-MM-dd")
  9. LocalDate borrowDate ;
  10. @OkJsonDateTimeFormatter(format="HH:mm:ss")
  11. LocalTime borrowTime ;
  12. }

3.3. JSON数组简单元素类型与实体类属性类型映射表

JSON数组简单元素类型 JSON示例 实体类属性类型
字符串 “…” String
整型数字 123 Byte
整型数字 123 Short
整型数字 123 Integer
整型数字 123 Long
浮点数字 123.456 Float
浮点数字 123.456 Double
布尔值 true/false Boolean
字符串 “…” LocalDate
字符串 “…” LocalTime
字符串 “…” LocalDateTime
JSON树枝 {…} JAVA对象

如:

  1. public class DemoUserClass {
  2. LinkedList<String> interestGroupList ;
  3. }