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");  
    }  
}  
相关推荐
报错小能手26 分钟前
线程池学习(七)实现定时(调度)线程池
学习
●VON1 小时前
从模型到价值:MLOps 工程体系全景解析
人工智能·学习·制造·von
好奇龙猫1 小时前
【人工智能学习-AI-MIT公开课第 18. 表示:分類、軌跡、過渡】
学习
hhcccchh2 小时前
学习vue第八天 Vue3 模板语法和内置指令 - 简单入门
前端·vue.js·学习
浩瀚地学2 小时前
【Java】异常
java·开发语言·经验分享·笔记·学习
Nan_Shu_6143 小时前
学习: Threejs (3)& Threejs (4)
学习
IT=>小脑虎4 小时前
2026版 Python零基础小白学习知识点【基础版详解】
开发语言·python·学习
李泽辉_5 小时前
深度学习算法学习(五):手动实现梯度计算、反向传播、优化器Adam
深度学习·学习·算法
星火开发设计5 小时前
C++ set 全面解析与实战指南
开发语言·c++·学习·青少年编程·编程·set·知识
坚持就完事了5 小时前
Linux的学习03:时间没有更新怎么解决
学习