#include "pch.h" #include "json/jsonVCWrapper.h" bool toWstring(const jsonobj& j, std::wstring& dst) { if (j.is_string()) { // 判断是否为string类型的数据,避免get函数抛出异常 dst = utf8_16(j.get()); return true; } else { return false; } } #ifdef _UNICODE void to_json(jsonobj& j, const CString& p) { j = CStringToUtf8(p); } void from_json(const jsonobj& j, CString& p) { if (j.is_string()) { // 判断是否为string类型的数据,避免get函数抛出异常 p = CStringFromUtf8(j.get()); } else { // 没法返回错误 } } #else // 未测试 void to_json(jsonobj& j, const CString& p) { j = Utf8ToGbk((LPCSTR)p); } void from_json(const jsonobj& j, CString& p) { if (j.is_string()) { // 判断是否为string类型的数据,避免get函数抛出异常 p = Utf8ToGbk(j.get()).c_str(); } else { // 没法返回错误 } } #endif void to_json(jsonobj& j, const CPoint& p) { j["x"] = p.x; j["y"] = p.y; } void from_json(const jsonobj& j, CPoint& p) { readWithDefault(j, "x", p.x, 0); readWithDefault(j, "y", p.y, 0); } void to_json(jsonobj& j, const CSize& p) { j["cx"] = p.cx; j["cy"] = p.cy; } void from_json(const jsonobj& j, CSize& p) { readWithDefault(j, "cx", p.cx, 0); readWithDefault(j, "cy", p.cy, 0); } void to_json(jsonobj& j, const CRect& p) { j["x"] = p.left; j["y"] = p.top; j["w"] = p.right-p.left; j["h"] = p.bottom-p.top; } void from_json(const jsonobj& j, CRect& p) { int w, h; readWithDefault(j, "x", p.left, 0); readWithDefault(j, "y", p.top, 0); readWithDefault(j, "w", w, 0); readWithDefault(j, "h", h, 0); p.right = p.left + w; p.bottom = p.top + h; }