add Json::array & Json::object function

This commit is contained in:
Nomango 2019-04-01 22:02:46 +08:00 committed by Nomango
parent 6733757d09
commit 549df3df58
2 changed files with 34 additions and 10 deletions

View File

@ -1907,7 +1907,7 @@ namespace easy2d
{
}
basic_json(initializer_list init_list)
basic_json(initializer_list const& init_list)
{
bool is_an_object = std::all_of(init_list.begin(), init_list.end(), [](const basic_json& json)
{
@ -1934,6 +1934,32 @@ namespace easy2d
}
}
static inline basic_json object(initializer_list const& init_list)
{
if (init_list.size() != 2 || !(*init_list.begin()).is_string())
{
throw json_type_error("cannot create object from initializer_list");
}
basic_json json;
json.value_ = JsonType::Object;
json.value_.data.object->emplace(*((*init_list.begin()).value_.data.string), *(init_list.begin() + 1));
return json;
}
static inline basic_json array(initializer_list const& init_list)
{
basic_json json;
json.value_ = JsonType::Array;
if (init_list.size())
{
json.value_.data.vector->reserve(init_list.size());
json.value_.data.vector->assign(init_list.begin(), init_list.end());
}
return json;
}
inline bool is_object() const { return value_.type == JsonType::Object; }
inline bool is_array() const { return value_.type == JsonType::Array; }

View File

@ -87,12 +87,12 @@ public:
// 创建 JSON 格式的 POST 数据
Json request_data = {
{"string", "testÖÐÎÄ"},
{"boolean", true},
{"integer", 12},
{"float", 3.125},
{"array", {1, 2, 3, 4, 4.5 }},
{"object", {"key", "value"}},
{ "string", "testÖÐÎÄ" },
{ "boolean", true },
{ "integer", 12 },
{ "float", 3.125 },
{ "array", { 1, 2, 3, 4, 4.5 } },
{ "object", { "key", "value" } },
};
HttpRequestPtr request = new HttpRequest;
@ -111,9 +111,7 @@ public:
Logger::Instance().Println(L"Start to send PUT request...");
// 创建 JSON 格式的 PUT 数据
Json request_data = {
{"user", {{"id", 1}, {"phone", "12345678"}}},
};
Json request_data = Json::array({ 1, 2, 3 });
HttpRequestPtr request = new HttpRequest;
request->SetUrl(L"http://httpbin.org/put");