【问题标题】:unity c# json string to list/dictionary in 2020unity c# json 字符串到 2020 年列表/字典
【发布时间】:2020-04-13 15:34:40
【问题描述】:

我有一个简单的 json 字符串,我的 php 文件返回统一 {"1":10,"2":25,"3":1,"4":124,"7":567} 第一个数字是商品编号,第二个是金额。

我在 unity 和 c# 中看到与 php 不同的是,数组是固定长度的,所以似乎最好的方法是解析成字典或列表。

任何人都知道在 2020 年解析这个的最佳方式,不确定 unity 现在是否有自己的 json 解析器,或者您是否应该使用 simpleJson,以及存储它的最佳方式是什么。

我有一本游戏项目的字典,但不知道如何将 json 字符串放入其中

Dictionary<int, int> Gameitems = new Dictionary<int, int>();

【问题讨论】:

  • 你做过任何研究吗?这只是一个谷歌答案......\
  • 是的,我已经对这一事实进行了大量研究,但所有答案都来自 2,3 或 4 年前,并且使用了外部 JSON API ......我在 2019 年读到了一些说法统一会它是自己的 json 解析器,因此为什么在我去导入整个 api 来做如此简单的事情之前在这里问这个问题。我有 Dictionary Gameitems = new Dictionary();存储所有游戏项目,但不确定如何在 2020 年将 json 解析到其中。
  • 如果我在 google 中输入“Unity json”,第一个点击是 docs.unity3d.com/Manual/JSONSerialization.html,这就是你的答案。
  • 是的,我看到了,但那是采用 json 对象并将其转换为字符串。我在该页面中查找如何获取 json 字符串并将其放入字典中,但我找不到任何东西...是否有一个简单的命令来执行此操作,或者我是否必须手动将数据放入字典中?跨度>
  • 很高兴听到 - 您可以自己将其发布为答案并接受它

标签: c# json unity3d


【解决方案1】:

您可以使用 NuGet 包 Newtonsoft 并使用这个简单的功能:

    JsonConvert.DeserializeObject<Dictionary<int, int>>( yourJsonString );

但不幸的是,unity 不支持 NuGet 包管理器,因此您必须import it to Unity manually。 这是the link on NuGet package Newtonsoft。它可能有用。 有关类似解决方案的更多信息here

或者编写自己的解析器:/

【讨论】:

    猜你喜欢
    • 2021-05-23
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-29
    相关资源
    最近更新 更多