[英]C# Unity JsonUtility, how can I turn this simple json into some kind of useful c# object?
我對Unity JsonUtility 很困惑,主要是缺乏對c# 的理解。 他們所有的示例都是非常非通用的類,但我需要靈活性,並且無法找到適合我的好的 e2e 示例。
我有這個簡單的 json 數據需要使用:
"{
1: 987,
2: 123,
3: 001,
4: 157,
}"
這是一個鍵值 object,其中鍵和值都是整數。
我的問題是 object 的大小是未知的,索引可能會不斷增加,而且我不明白如何在 c# 中定義一個通用的 object (類?)可以轉換 Json。 我需要定義一個 class,還是可以內聯? 我需要定義 getter 和 setter,還是有一些方便的通配符字典,比如適合的東西?
我正在嘗試實現這樣的目標:
string jsonString = "{1:987,2:123,3:001,4:157}":
var object = JsonUtility.FromJson<??????>(jsonString);
Debug.Log(object[1]) // 987
Debug.Log(object[99]) // undefined
然后我希望能夠將新對添加到 object 並最后將其再次變成 json 類似:
object[100] = 999;
const jsonString = JsonUtility.ToJson<??????>(object);
Debug.Log(jsonString) // "{1:987,2:123,3:001,4:157,100:999}":
內置JsonUtility
不支持KeyValuePair
或Dictionary
。
您可以使用Newtonsoft.Net JSON ( Unity 有一個包裝器 Package ),這將是一個簡單的Dictionary<int, int>
var json = "{1:987,2:123,3:001,4:157}":
var values = JsonConvert.DeserializeObject<Dictionary<int, int>>(json);
Debug.Log(values [2]);
和
var values = new Dictionary<int, int>{ { 2, 123 }, {7, 345} };
var json = JsonConvert.SerializeObject(values);
Debug.Log(json);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.