123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- // Copyright aXiuShen. All Rights Reserved.
- #include "MatureJsonModule.h"
- #include "MatureJsonLog.h"
- #include "json_cast.hpp"
- #include "MatureJsonValue.h"
- #include "MatureJsonObject.h"
- #include "MatureJsonList.h"
- #define LOCTEXT_NAMESPACE "FBaseBrowserModule"
- DEFINE_LOG_CATEGORY(MatureJsonLog);
- FString value_to_string (FMatureJsonValue Value) {
- // 任意 value节点 均可以序列化字符串
- FString sub_string = Value.ToObject().ToValue(TEXT("小说情侣")).SaveString();
- // 跟节点 做序列化
- FString root_string = Value.SaveString();
- return root_string;
- }
- FString value_object_loop (FMatureJsonValue Value) {
- EMatureJsonType type;
- FString Key;
- FMatureJsonObjectIterator it = Value.ToObject();
- for (; it.IsValid(); it++) {
- Key = it.Key();
- type = it.Value().GetType();
- }
- return FString();
- }
- void list_encode_example(FMatureJsonList List) {
- FMatureJsonObject Object;
- Object = List.AddObject();
- Object.AddList(TEXT("省份"))
- .AddValue(TEXT("北京"))
- .AddValue(TEXT("香港"))
- .AddValue(TEXT("澳门"))
- .AddValue(TEXT("台湾省"))
- .AddValue(TEXT("四川"));
- FMatureJsonObject Object2 /*= List.AddObject()*/;
- Object2.AddList(TEXT("艺术家"))
- .AddValue(TEXT("陈道明"))
- .AddValue(TEXT("成龙"))
- .AddValue(TEXT("刘德华"))
- .AddValue(TEXT("张艺谋"))
- .AddValue(TEXT("刀郎"));
- List.AddValue(Object2);
- }
- FMatureJsonValue object_encode_example() {
- FMatureJsonValue Value;
- FMatureJsonObject Object;
- FMatureJsonObject Object2;
- FMatureJsonObject Object3;
- FMatureJsonList List;
- TMap<FString, double> map_doble = { {TEXT("w"),123.0},{TEXT("e"),123.0},{TEXT("r"),123.0} };
- TMap<FString, FString> map_string = { {TEXT("郭靖"),TEXT("黄蓉")},{TEXT("杨过"),TEXT("小龙女")} };
- Value.ToObject()
- .AddValue(TEXT("alpha"), 0.25)
- .AddValue(TEXT("悟空租车"), TEXT("自驾游"))
- .AddValue(TEXT("color"), 0x00FFFFFF)
- .AddValue(TEXT("爱好和平"), true)
- .AddValue(TEXT("当前时间"), FDateTime::Now());
- Object = Value.ToObject()
- .AddObject(TEXT("对象属性"));
- Object.AddValue(map_doble);
- Object3.AddValue(map_string);
- Object2 = Value.ToObject()
- .AddObject(TEXT("小说情侣"))
- .AddValue(Object3);
- list_encode_example(List);
- Value.ToObject()
- .AddValue(TEXT("中国"), List);
- return Value;
- }
- void decode_example(FMatureJsonValue Root) {
- FMatureJsonObject Object = Root.ToObject();
- float alpha = Object.ToValue(TEXT("alpha")).ToFloat();
- int32 color = Object.ToValue(TEXT("color")).ToInt32();
- FMatureJsonList china = Object.ToList(TEXT("中国"));
- FString china_str = Object.ToValue(TEXT("中国")).SaveString();
- FMatureJsonList list_province = china.ToObject(0).ToList(TEXT("省份"));
- FString province_str = china.ToObject(0).ToValue(TEXT("省份")).SaveString();
- FString taiwan_province = list_province.ToValue(3).ToString();
- taiwan_province.Append(TEXT(""));
- }
- void FMatureJsonModule::StartupModule()
- {
- #if WITH_EDITOR
- FMatureJsonValue Value = object_encode_example();
- value_to_string(Value);
- decode_example(Value);
- value_object_loop(Value);
- #endif
- }
- void FMatureJsonModule::ShutdownModule()
- {
- }
- #undef LOCTEXT_NAMESPACE
- IMPLEMENT_MODULE(FMatureJsonModule, MatureJson)
|