Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
畅游知识海洋
json
提交
1e20887c
J
json
项目概览
畅游知识海洋
/
json
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
json
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1e20887c
编写于
1月 20, 2017
作者:
T
Théo DELRIEU
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
use JSON_THROW
上级
447c6a67
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
20 addition
and
20 deletion
+20
-20
src/json.hpp
src/json.hpp
+10
-10
src/json.hpp.re2c
src/json.hpp.re2c
+10
-10
未找到文件。
src/json.hpp
浏览文件 @
1e20887c
...
...
@@ -513,7 +513,7 @@ void get_arithmetic_value(const Json& j, ArithmeticType& val)
}
else
{
throw
std
::
domain_error
(
"type must be number, but is "
+
type_name
(
j
));
JSON_THROW
(
std
::
domain_error
(
"type must be number, but is "
+
type_name
(
j
)
));
}
}
...
...
@@ -592,7 +592,7 @@ void from_json(const Json& j, typename Json::boolean_t& b)
{
if
(
!
j
.
is_boolean
())
{
throw
std
::
domain_error
(
"type must be boolean, but is "
+
type_name
(
j
));
JSON_THROW
(
std
::
domain_error
(
"type must be boolean, but is "
+
type_name
(
j
)
));
}
b
=
*
j
.
template
get_ptr
<
const
typename
Json
::
boolean_t
*
>();
}
...
...
@@ -602,7 +602,7 @@ void from_json(const Json& j, typename Json::string_t& s)
{
if
(
!
j
.
is_string
())
{
throw
std
::
domain_error
(
"type must be string, but is "
+
type_name
(
j
));
JSON_THROW
(
std
::
domain_error
(
"type must be string, but is "
+
type_name
(
j
)
));
}
s
=
*
j
.
template
get_ptr
<
const
typename
Json
::
string_t
*
>();
}
...
...
@@ -639,7 +639,7 @@ void from_json(const Json& j, typename Json::array_t& arr)
{
if
(
!
j
.
is_array
())
{
throw
std
::
domain_error
(
"type must be array, but is "
+
type_name
(
j
));
JSON_THROW
(
std
::
domain_error
(
"type must be array, but is "
+
type_name
(
j
)
));
}
arr
=
*
j
.
template
get_ptr
<
const
typename
Json
::
array_t
*
>();
}
...
...
@@ -652,13 +652,13 @@ void from_json(const Json& j, std::forward_list<T, Allocator>& l)
// (except when it's null.. ?)
if
(
j
.
is_null
())
{
throw
std
::
domain_error
(
"type must be array, but is "
+
type_name
(
j
));
JSON_THROW
(
std
::
domain_error
(
"type must be array, but is "
+
type_name
(
j
)
));
}
if
(
not
std
::
is_same
<
T
,
Json
>::
value
)
{
if
(
!
j
.
is_array
())
{
throw
std
::
domain_error
(
"type must be array, but is "
+
type_name
(
j
));
JSON_THROW
(
std
::
domain_error
(
"type must be array, but is "
+
type_name
(
j
)
));
}
}
for
(
auto
it
=
j
.
rbegin
(),
end
=
j
.
rend
();
it
!=
end
;
++
it
)
...
...
@@ -711,14 +711,14 @@ void from_json(const Json& j, CompatibleArrayType& arr)
{
if
(
j
.
is_null
())
{
throw
std
::
domain_error
(
"type must be array, but is "
+
type_name
(
j
));
JSON_THROW
(
std
::
domain_error
(
"type must be array, but is "
+
type_name
(
j
)
));
}
// when T == Json, do not check if value_t is correct
if
(
not
std
::
is_same
<
typename
CompatibleArrayType
::
value_type
,
Json
>::
value
)
{
if
(
!
j
.
is_array
())
{
throw
std
::
domain_error
(
"type must be array, but is "
+
type_name
(
j
));
JSON_THROW
(
std
::
domain_error
(
"type must be array, but is "
+
type_name
(
j
)
));
}
}
from_json_array_impl
(
j
,
arr
,
priority_tag
<
1
>
{});
...
...
@@ -733,7 +733,7 @@ void from_json(const Json& j, CompatibleObjectType& obj)
{
if
(
!
j
.
is_object
())
{
throw
std
::
domain_error
(
"type must be object, but is "
+
type_name
(
j
));
JSON_THROW
(
std
::
domain_error
(
"type must be object, but is "
+
type_name
(
j
)
));
}
auto
inner_object
=
j
.
template
get_ptr
<
const
typename
Json
::
object_t
*
>();
...
...
@@ -777,7 +777,7 @@ void from_json(const Json& j, ArithmeticType& val)
}
else
{
throw
std
::
domain_error
(
"type must be number, but is "
+
type_name
(
j
));
JSON_THROW
(
std
::
domain_error
(
"type must be number, but is "
+
type_name
(
j
)
));
}
}
...
...
src/json.hpp.re2c
浏览文件 @
1e20887c
...
...
@@ -513,7 +513,7 @@ void get_arithmetic_value(const Json& j, ArithmeticType& val)
}
else
{
throw std::domain_error("type must be number, but is " + type_name(j
));
JSON_THROW(std::domain_error("type must be number, but is " + type_name(j)
));
}
}
...
...
@@ -592,7 +592,7 @@ void from_json(const Json& j, typename Json::boolean_t& b)
{
if (!j.is_boolean())
{
throw std::domain_error("type must be boolean, but is " + type_name(j
));
JSON_THROW(std::domain_error("type must be boolean, but is " + type_name(j)
));
}
b = *j.template get_ptr<const typename Json::boolean_t*>();
}
...
...
@@ -602,7 +602,7 @@ void from_json(const Json& j, typename Json::string_t& s)
{
if (!j.is_string())
{
throw std::domain_error("type must be string, but is " + type_name(j
));
JSON_THROW(std::domain_error("type must be string, but is " + type_name(j)
));
}
s = *j.template get_ptr<const typename Json::string_t*>();
}
...
...
@@ -639,7 +639,7 @@ void from_json(const Json& j, typename Json::array_t& arr)
{
if (!j.is_array())
{
throw std::domain_error("type must be array, but is " + type_name(j
));
JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)
));
}
arr = *j.template get_ptr<const typename Json::array_t*>();
}
...
...
@@ -652,13 +652,13 @@ void from_json(const Json& j, std::forward_list<T, Allocator>& l)
// (except when it's null.. ?)
if (j.is_null())
{
throw std::domain_error("type must be array, but is " + type_name(j
));
JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)
));
}
if (not std::is_same<T, Json>::value)
{
if (!j.is_array())
{
throw std::domain_error("type must be array, but is " + type_name(j
));
JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)
));
}
}
for (auto it = j.rbegin(), end = j.rend(); it != end; ++it)
...
...
@@ -711,14 +711,14 @@ void from_json(const Json& j, CompatibleArrayType& arr)
{
if (j.is_null())
{
throw std::domain_error("type must be array, but is " + type_name(j
));
JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)
));
}
// when T == Json, do not check if value_t is correct
if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value)
{
if (!j.is_array())
{
throw std::domain_error("type must be array, but is " + type_name(j
));
JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)
));
}
}
from_json_array_impl(j, arr, priority_tag<1> {});
...
...
@@ -733,7 +733,7 @@ void from_json(const Json& j, CompatibleObjectType& obj)
{
if (!j.is_object())
{
throw std::domain_error("type must be object, but is " + type_name(j
));
JSON_THROW(std::domain_error("type must be object, but is " + type_name(j)
));
}
auto inner_object = j.template get_ptr<const typename Json::object_t*>();
...
...
@@ -777,7 +777,7 @@ void from_json(const Json& j, ArithmeticType& val)
}
else
{
throw std::domain_error("type must be number, but is " + type_name(j
));
JSON_THROW(std::domain_error("type must be number, but is " + type_name(j)
));
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录