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对象 |
如:
public class DemoUserClass {
String userName ;
String email ;
}
如:
public class DemoUserClass {
...
UserExtInfo userExtInfo ;
...
}
class UserExtInfo {
String gender ;
int age ;
String address ;
}
如:
public class DemoUserClass {
...
LinkedList<BorrowDetail> borrowDetailList ;
}
class BorrowDetail {
String bookName ;
String author ;
@OkJsonDateTimeFormatter(format="yyyy-MM-dd")
LocalDate borrowDate ;
@OkJsonDateTimeFormatter(format="HH:mm:ss")
LocalTime borrowTime ;
}
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对象 |
如:
public class DemoUserClass {
LinkedList<String> interestGroupList ;
}