此页面是 JSON 模式 对应的 API 说明,你可以查看 索引 来寻找需要的 API。
Crypto Mode For English Version Is Here Index For English Version Is Here
JSON
JSON 类 API 请求的前缀为 http://api.forec.cn/json
,你可以使用 GET 或 POST 方式传递数据。
此模式提供对 JSON 格式数据的解析服务,服务器将对针对你的请求返回 纯文本 格式的数据。
此 API 可指定以下字段:
json
(必选):待解析的 JSON 格式字符串
key
(可选):要获取的值对应的键
type
(可选):要获取的值的类型
key 字段
默认情况下,服务器会直接以字符串格式返回 JSON 格式中 key
键对应的内容。
如果 JSON 字符串中不包含 key
指定的键,则服务器将返回 null
。
如果 key
没有被设定,服务器会直接返回原始的 JSON 字符串。
1 2 3 4 5 6 > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :"{1:2,3:4}" }}}&key=test 1 {"test2" :{"test3" :"{1:2,3:4}" }} > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :"{1:2,3:4}" }}}&key=test null > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :"{1:2,3:4}" }}} {"test1" :{"test2" :{"test3" :"{1:2,3:4}" }}}
key
字段也可以是一个通过 :
划分的列表。在上面的例子中,如果你想获取 test3
键对应的值,则可以将 key
字段设置为 test1:test2:test3
。
1 2 > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :"{1:2,3:4}" }}}&key=test 1:test 2:test 3 "{1:2,3:4}"
type 字段
你可以 指定 type
字段来实现类型检查 。默认情况下,如果你没有指定 type
,服务器会以字符串格式返回键对应的值。如果你设置了 type
字段,则服务器会尝试将值解析为你指定的 type
格式。如果解析成功,服务器会按照该格式通用的方式转换为字符串并返回;如果无法将值解析为 type
格式,则服务器返回 null
。
type
字段可以是如下类型之一,大小写不敏感。如果 type
字段不是如下类型,则将默认被视作 default
格式:
int
float
bool
string
stringarray
array
map
default
(和不设置 type 字段相同)
int
、float
和 bool
类型会将值以纯字符串格式返回。如果你能保证值的类型,那么你可以不设置 type
字段以忽视类型检查。如果类型检查成功,则这三种格式在设定 type
和 default
模式下的返回结果相同,否则服务器返回 null
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :123 }}}&key=test 1:test 2:test 3 123 > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :123 }}}&key=test 1:test 2:test 3&type =int 123 > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :123.321 }}}&key=test 1:test 2:test 3&type =int null > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :123 }}}&key=test 1:test 2:test 3&type =float 123.000000 > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :123.321 }}}&key=test 1:test 2:test 3&type =float 123.321000 > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :true }}}&key=test 1:test 2:test 3&type =bool true > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :123 }}}&key=test 1:test 2:test 3&type =bool null
如果你确定值的类型是字符串,你可以指定类型为 string
。注意 string
格式和默认模式的返回值有一点差别,string
格式返回时不包括外围的引号。
1 2 3 4 5 6 > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :teststring}}}&key=test 1:test 2:test 3&type =string null > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :"teststring" }}}&key=test 1:test 2:test 3&type =string teststring > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :"teststring" }}}&key=test 1:test 2:test 3 "teststring"
stringarray
是一个字符串列表,下面的例子展示了 stringarray
模式和默认模式的差别。
1 2 3 4 5 > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :["test" , "testarray" ]}}} &key=test 1:test 2:test 3&type =stringarray [test ,testarray] > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :["test" , "testarray" ]}}}&key=test 1:test 2:test 3 ["test" ,"testarray" ]
array
和 map
的返回结果和默认模式类似,但服务器会先对值做类型检查。如果值无法被映射为列表或字典,则服务器返回 null
,否则以字符串格式返回,但不包括外围引号。
1 2 3 4 5 6 7 8 > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :"[1,2,3]" }}}&key=test 1:test 2:test 3&type =array [1 ,2 ,3 ] > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :"[1,2,3]" }}}&key=test 1:test 2:test 3 "[1,2,3]" > curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :"2:[1,2,3]" }}}&key=test 1:test 2:test 3&type =map 2 :[1 ,2 ,3 ]> curl http://api.forec.cn/json?json={"test1" :{"test2" :{"test3" :"2:[1,2,3]" }}}&key=test 1:test 2:test 3 "2:[1,2,3]"