国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity——JSON的讀取

這篇具有很好參考價值的文章主要介紹了Unity——JSON的讀取。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

一、讀取JSON

在實(shí)際中,讀取JSON比保存JSON重要得多。因?yàn)榇鏅n、發(fā)送數(shù)據(jù)包往往可以采用其他序列化方法,但游戲的配置文件使用JSON格式比較常見。游戲的配置數(shù)據(jù)不屬于動態(tài)數(shù)據(jù),屬于游戲資源,但很適合用JSON表示。

下面以一個簡單的JSON數(shù)據(jù)文件為例,演示讀取JSON。從整體上看有兩種思路

  • 直接整體反序列化為數(shù)據(jù)對象
  • 通過寫代碼逐步讀取內(nèi)容
{
  "students": [
    {
      "name": "Alice",
      "age": 20,
      "major": "Computer Science"
    },
    {
      "name": "Bob",
      "age": 22,
      "major": "Engineering"
    },
    {
      "name": "Carol",
      "age": 21,
      "major": "Business"
    }
  ]
}

1、整體反序列化

LitJSON庫支持直接將JSON字符串反序列化為C#對象,但是為了方便使用,最好先準(zhǔn)備一個數(shù)據(jù)結(jié)構(gòu)與JSON完全對應(yīng)的對象。示例如下:

[System.Serializable]
public class Student
{
    public string name;
    public int age;
    public string major;
}

這個類使用了[System.Serializable]屬性,以便在序列化和反序列化 JSON 數(shù)據(jù)時能夠正確處理。該類有三個屬性,分別表示學(xué)生的姓名(name)、年齡(age)和專業(yè)(major)。

?用LitJson.JsonMapper方法實(shí)現(xiàn)反序列化

using UnityEngine;
using System.Collections.Generic;
using LitJson;

public class JSONDeserializer : MonoBehaviour
{
    public TextAsset jsonFile;

    void Start()
    {
        string jsonString = jsonFile.text;
        StudentsData data = JsonMapper.ToObject<StudentsData>(jsonString);

        List<Student> students = data.students;
        
        // 遍歷學(xué)生列表并輸出信息
        foreach (Student student in students)
        {
            Debug.Log("Name: " + student.name);
            Debug.Log("Age: " + student.age);
            Debug.Log("Major: " + student.major);
            Debug.Log("------------------");
        }
    }
}

[System.Serializable]
public class StudentsData
{
    public List<Student> students;
}

[System.Serializable]
public class Student
{
    public string name;
    public int age;
    public string major;
}

JSON源文件應(yīng)當(dāng)放在Resources/Json文件夾下,將上文的腳本掛載到任意物體上即可進(jìn)行測試,系統(tǒng)會在Console窗口中輸出所有道具的信息。

可以看到,直接序列化對象的優(yōu)點(diǎn)是簡單易行,只要定義好了數(shù)據(jù)類型,就可以直接將JSON轉(zhuǎn)化為方便實(shí)用的對象。但缺點(diǎn)也很明顯,即JSON對數(shù)據(jù)類型的要求十分嚴(yán)格。

2、分步獲取數(shù)據(jù)

下面是分布讀取JSON信息的例子

using UnityEngine;
using System.Collections.Generic;
using LitJson;

public class JSONDeserializer : MonoBehaviour
{
    public TextAsset jsonFile;

    void Start()
    {
        string jsonString = jsonFile.text;
        JsonData jsonData = JsonMapper.ToObject(jsonString);

        // 讀取頂層數(shù)據(jù)對象
        string name = (string)jsonData["name"];
        int age = (int)jsonData["age"];
        string major = (string)jsonData["major"];
        
        Debug.Log("Name: " + name);
        Debug.Log("Age: " + age);
        Debug.Log("Major: " + major);
        Debug.Log("------------------");

        // 讀取嵌套對象列表
        JsonData studentsData = jsonData["students"];
        for (int i = 0; i < studentsData.Count; i++)
        {
            JsonData studentData = studentsData[i];
            string studentName = (string)studentData["name"];
            int studentAge = (int)studentData["age"];
            string studentMajor = (string)studentData["major"];

            Debug.Log("Name: " + studentName);
            Debug.Log("Age: " + studentAge);
            Debug.Log("Major: " + studentMajor);
            Debug.Log("------------------");
        }
    }
}

這個示例代碼假設(shè) JSON 數(shù)據(jù)文件的頂層結(jié)構(gòu)與上述示例相同。在Start方法中,我們首先將 JSON 字符串解析為JsonData對象,然后逐行讀取其中的數(shù)據(jù)。

首先,我們讀取頂層數(shù)據(jù)對象的姓名、年齡和專業(yè),并打印到日志中。然后,我們讀取名為students的嵌套對象列表,使用循環(huán)迭代每個學(xué)生的數(shù)據(jù)。在每次迭代中,我們讀取學(xué)生對象的姓名、年齡和專業(yè),并打印到日志中。

通過這種方式,你可以逐行讀取 JSON 數(shù)據(jù),并按需處理其中的內(nèi)容。注意要將 JSON 數(shù)據(jù)文件分配給jsonFile變量,并確保引入了 LitJson 命名空間。文章來源地址http://www.zghlxwxcb.cn/news/detail-736941.html

到了這里,關(guān)于Unity——JSON的讀取的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Unity】C# 創(chuàng)建/讀取/解析JSON數(shù)據(jù)

    判斷是否存在JSON數(shù)據(jù)文件沒有則創(chuàng)建并保存

    2024年02月16日
    瀏覽(18)
  • Unity 數(shù)據(jù)讀取|(四)Json文件解析(Newtonsoft.Json ,Litjson,JsonUtility,SimpleJSON)

    JSON文件是一種純文本文件,用于存儲數(shù)據(jù),并且是基于JavaScript的一個子集。JSON文件通常用于存儲和傳輸數(shù)據(jù),以及在應(yīng)用程序之間交換信息。它們以鍵值對的形式存儲數(shù)據(jù),其中鍵是字符串,值可以是字符串、數(shù)字、布爾值、數(shù)組、對象或null。 JSON文件通常具有.json擴(kuò)展名

    2024年02月05日
    瀏覽(19)
  • Unity文本框解析讀取mqtt服務(wù)器JSON數(shù)據(jù)

    Unity文本框解析讀取mqtt服務(wù)器JSON數(shù)據(jù)

    本次內(nèi)容是講述如何將mqtt服務(wù)器中接收到的數(shù)據(jù)在Unity3D的文本框控件中顯示JSON鍵值對中的“值”。 需求: 1.GameObject——UI——Text (將Unity 3D的文本框控件置于場景) 命名空間引用: using UnityEngine.UI; 2. Newtonsoft插件 命名空間引用: Newtonsoft.Json.Linq; 3.MQTT通訊需求: (1)h

    2023年04月08日
    瀏覽(25)
  • Unity中讀取Json文件:基于Assets/Resources文件夾

    我好生氣??,Python,JS里面一兩行代碼能夠搞定的Json讀取,在Unity中使用C#讀取Json文件超多坑,爬出來一個又來一個。 主要是JsonUtility.FromJson太不給力了。 最好的方式是,使用 https://github.com/jilleJr/Newtonsoft.Json-for-Unity 這個第三方庫。詳情見下。 Step 1: 先把對應(yīng)的Json File放到

    2024年02月12日
    瀏覽(23)
  • 【100個 Unity實(shí)用技能】?? | Unity讀取本地文件(Json,txt等)的三種方法示例

    【100個 Unity實(shí)用技能】?? | Unity讀取本地文件(Json,txt等)的三種方法示例

    老規(guī)矩,先介紹一下 Unity 的科普小知識: Unity 是 實(shí)時3D互動內(nèi)容創(chuàng)作和運(yùn)營平臺 。 包括 游戲開發(fā) 、 美術(shù) 、 建筑 、 汽車設(shè)計 、 影視 在內(nèi)的所有創(chuàng)作者,借助 Unity 將創(chuàng)意變成現(xiàn)實(shí)。 Unity 平臺提供一整套完善的軟件解決方案,可用于創(chuàng)作、運(yùn)營和變現(xiàn)任何實(shí)時互動的2D和

    2023年04月08日
    瀏覽(24)
  • 【Unity 3D】C#從JSON文件中讀取、解析、保存數(shù)據(jù)(附源碼)

    JSON是一種輕量級的數(shù)據(jù)交換格式,采用完全獨(dú)立于編程語言的文本格式存儲和表示數(shù)據(jù),簡潔和清晰的層次結(jié)構(gòu)使JSON成為理想的數(shù)據(jù)交換語言,易于讀者閱讀和編寫,同時也易于機(jī)器解析和生成,并有效的提高網(wǎng)絡(luò)傳輸效率 生成JSON數(shù)據(jù)實(shí)例代碼如下 下面的代碼將JSON中數(shù)據(jù)

    2024年02月11日
    瀏覽(161)
  • Unity解析json文件(分為json與jsonArray)

    什么是json? JSON是一種取代XML的數(shù)據(jù)結(jié)構(gòu),和xml相比,它更小巧但描述能力卻不差,由于它的小巧所以網(wǎng)絡(luò)傳輸數(shù)據(jù)將減少更多流量從而加快速度, 那么,JSON到底是什么? JSON就是一串字符串 只不過元素會使用特定的符號標(biāo)注。 {} 雙括號表示對象 [] 中括號表示數(shù)組 “” 雙引號內(nèi)是

    2024年02月08日
    瀏覽(19)
  • Unity自帶方法讀寫JSON文件

    最近使用JSON文件保存模型表情數(shù)據(jù),簡單記錄一下。 首先自定義數(shù)據(jù)類,需要記錄表情每幀的所有BlendShape及時間戳: 使用Unity自帶的JSON讀寫方法: 保存與讀取JSON文件: 簡單記錄,部分變量與方法未展示,僅供參考。

    2024年02月12日
    瀏覽(28)
  • 【Unity數(shù)據(jù)交互】JSON開山篇

    【Unity數(shù)據(jù)交互】JSON開山篇

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點(diǎn)贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 :Unity基礎(chǔ)實(shí)戰(zhàn) JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,具有易于讀寫和解析的特點(diǎn),廣泛應(yīng)用于各種應(yīng)用程序中的數(shù)據(jù)

    2024年02月06日
    瀏覽(13)
  • Unity解析JSON的幾種方式

    1.使用JsonUtility(Unity自帶)解析數(shù)據(jù) 踩坑 2.使用Newtonsoft.Json dll解析json 鏈接: link 3.使用LitJson解析數(shù)據(jù) 4.傳遞給前端或后端 json

    2024年02月16日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包