簡體   English   中英

C# Unity JsonUtility,我怎樣才能把這個簡單的 json 變成某種有用的 c# ZA8CFDE6331BD59EB2ACZ66F666

[英]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不支持KeyValuePairDictionary


您可以使用Newtonsoft.Net JSONUnity 有一個包裝器 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM