LitJson

序列化API:JsonMapper.ToJson(object);


反序列化API:JsonMapper.ToObject<T>(string);

注意:JsonMapper.ToObject(string);如果不指定转换类型结果是JsonData类型并非T类型!


JsonType枚举值:

cs 复制代码
public enum JsonType  
{  
    None,     // 未设置类型  
    Object,   // JSON对象类型 {}  
    Array,    // JSON数组类型 []  
    String,   // 字符串类型  
    Int,      // 整数类型  
    Long,     // 长整数类型  
    Double,   // 双精度浮点数类型  
    Boolean   // 布尔类型  
}  

JsonData操作:

  • [] 操作符 - 访问属性
  • Contains() - 检查键存在
  • SetJsonType() - 设置类型
  • Add() - 添加数组元素

SetJsonType()****必须使用的情况:

  • 当需要使用键值对(对象)
  • 当需要使用Add方法(数组)
  • 创建嵌套结构时

不需要使用SetJsonType()的情况**:**

  • 直接赋值基本类型(字符串、数字、布尔值等)

记住:尽管直接赋值基本类型不需要SetJsonType(),但如果要创建对象或数组结构,SetJsonType()是必需的,否则会导致运行时异常。这是LitJson的设计特点,需要明确指定复杂数据结构的类型。


类型相关:

  • IsInt, IsString, IsArray 等 类型检查
  • GetJsonType() 获取类型

容错处理:

  • try-catch 包装 //TODO
  • 类型安全转换 //TODO
  • 数据验证 //TODO

最佳处理:

  • 创建新的JsonData对象后立即设置类型
  • 创建嵌套结构时不要忘记为每层设置类型
  • 考虑使用辅助方法确保类型设置
  • 在进行任何操作前验证类型是否正确

基础API示例

cs 复制代码
using LitJson;  

public class LitJsonBasicAPI  
{  
    void BasicExamples()  
    {  
        // 1. 对象序列化为JSON字符串  
        PlayerData player = new PlayerData();  
        string json = JsonMapper.ToJson(player);  

        // 2. JSON字符串反序列化为对象  
        PlayerData loadedPlayer = JsonMapper.ToObject<PlayerData>(json);  

        // 3. JSON字符串转换为JsonData  
        JsonData jsonData = JsonMapper.ToObject(json);  

        // 4. 直接创建JsonData  
        JsonData newData = new JsonData();  
    }  
}  

JsonData操作API示例

cs 复制代码
public class JsonDataOperations  
{  
    void JsonDataExample()  
    {  
        JsonData data = new JsonData();  

        // 1. 设置值  
        data["name"] = "Player1";  
        data["level"] = 10;  
        data["isActive"] = true;  

        // 2. 获取值  
        string name = (string)data["name"];  
        int level = (int)data["level"];  
        bool isActive = (bool)data["isActive"];  

        // 3. 检查键是否存在  
        bool hasName = data.Contains("name");  

        // 4. 获取类型  
        JsonType type = data.GetJsonType();  

        // 5. 设置类型  
        data.SetJsonType(JsonType.Array);  

        // 6. 数组操作  
        data.Add(123);  
        data.Add("string");  
    }  
}  
相关推荐
石像鬼₧魂石2 小时前
如何配置Fail2Ban的Jail?
linux·学习·ubuntu
Nan_Shu_6144 小时前
学习:VueUse (1)
学习
Li.CQ4 小时前
SQL学习笔记(二)
笔记·sql·学习
Huangxy__4 小时前
指针的补充学习
学习
Smartdaili China5 小时前
掌握Java网页抓取:技术与示例完整指南
java·网络·学习·指南·网页·住宅ip·爬虫api
charlie1145141917 小时前
如何快速在 VS2026 上使用 C++ 模块 — 完整上手指南
开发语言·c++·笔记·学习·现代c++
炽烈小老头8 小时前
【每天学习一点算法 2025/12/15】环形链表
学习·算法·链表
白帽子凯哥哥10 小时前
转行网络安全学习计划与报班建议
学习·安全·web安全·网络安全·渗透测试·漏洞挖掘·网安培训
ReaF_star11 小时前
【基线】关于Debian的一些简单安全配置及验证
学习·安全·debian