Unity LitJson解析Json

(1)Json文件如下,位于Resources目录或者StreamingAssets目录,目录不同,读取文件的方式不一样

{
    "cardList": [{
            "id": 1,
            "level": 1,
            "name": "Lily",
            "type": 0,
            "des": "第一个女孩",
            "isEquip": false,
            "color": 0,
            "file": "card/card_B_0A_lv1.png"
        },
        {
            "id": 2,
            "level": 1,
            "name": "Lucy",
            "type": 1,
            "des": "第二个女孩",
            "isEquip": false,
            "color": 0,
            "file": "card/card_B_0A_lv2.png"
        }]
    }

(2)简易解析过程如下

public class Card { 
    public int ID { get; set; }
    public int Level { get; set; }
    public string FileName { get; set; }

}
public class CardMrg : MonoBehaviour
{
    public List<Card> cardList = new List<Card>();
    // Start is called before the first frame update
    void Start()
    {
        GetAllCard();
    }

    void GetAllCard()
    {

       //自己封装函数,读取文件内容
        string content = FileUtil.GetTextForStreamingAssets("AllCard.txt");
        Debug.Log(content);

        JsonData data = JsonMapper.ToObject(content);
        Debug.Log("--------");
        JsonData list = data["cardList"];
        Debug.Log("--------");
        for (int i = 0; i < list.Count; i++)
        {
            int id = (int)list[i]["id"];
            int level = (int)list[i]["level"];
            string file = (string)list[i]["file"];
            Card card = new Card();
            card.ID = id;
            card.Level = level;
            card.FileName = file;
            cardList.Add(card);
        }
        print(cardList.Count);
        //使用LitJson解析时,解析类时
        //若需要小数,要使用double类型,而不能使用float,可后期在代码里再显式转换为float类型。
    }
}
 

Unity中使用LitJson解析嵌套的JSON可以通过JsonMapper.ToObject方法来实现。首先,你需要将JSON字符串转换为JsonData对象,然后可以通过索引或键值对的方式来获取嵌套的JSON数据。例如,你可以使用以下代码来解析嵌套的JSON: ```csharp string json = "{\"name\":\"John\",\"info\":{\"age\":25,\"sex\":\"male\"}}"; JsonData jsonData = JsonMapper.ToObject(json); string name = jsonData\["name"\].ToString(); int age = (int)jsonData\["info"\]\["age"\]; string sex = jsonData\["info"\]\["sex"\].ToString(); Debug.Log(name + " " + age + " " + sex); ``` 在上述代码中,我们首先将JSON字符串转换为JsonData对象,然后通过索引获取顶层的"name"属性的值,以及嵌套的"info"属性下的"age"和"sex"属性的值。最后,我们使用Debug.Log输出这些值。这样就可以解析嵌套的JSON数据了。\[2\] #### 引用[.reference_title] - *1* *3* [【教程】使用 LitJson 处理 Json 数据信息](https://blog.csdn.net/qq_51026638/article/details/121374233)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [C#使用LitJson解析JSON](https://blog.csdn.net/zhiqingcn/article/details/125258200)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值