【问题标题】:How to get all variables from a string如何从字符串中获取所有变量
【发布时间】:2019-08-17 11:05:38
【问题描述】:

我从 UnityWebRequest 得到一个字符串,其中包含我需要的所有信息。 问题是UnityWebRequest.downloadHandler.text 返回一个字符串。

如何将所有变量(如所有名称)放入字符串数组中?

下面是我得到的一些代码示例。

"{'id': 1, 'name': Bob, 'age': 25},{'id': 2, 'name': Mark, 'age': 32},{'id': 3, 'name': Simon, 'age': 16}";

【问题讨论】:

  • 解析为Json
  • 同意,您需要将其解析为JSON。如果不能,请告诉我们。
  • @SaniSinghHuttunen 我该怎么做?我有 Newtonsoft.Json 和 Json NuGet 包,但似乎仍然无法使用 Json.Parse...
  • @KianHeinsbæk:由于该字符串不是严格有效的 Json,因此可能有点棘手。您需要重新格式化它才能正确解析它。
  • @SaniSinghHuttunen 这只是一个示例,我拥有的字符串已完美地格式化为 JSON,但问题是我似乎无法弄清楚如何获取包含 Parse 的 JSON 类功能。

标签: c# arrays string unity3d


【解决方案1】:

您应该将其解析为Json
但这可能有点棘手,因为数据不是严格有效的 Json。
您需要先进行一些重新格式化:

这是一个简单的例子:

using System;
using Newtonsoft.Json;
using System.Text.RegularExpressions;

public class Program
{
    public static void Main()
    {
        var jsonString = "{'id': 1, 'name': Bob, 'age': 25},{'id': 2, 'name': Mark, 'age': 32},{'id': 3, 'name': Simon, 'age': 16}";
        jsonString = jsonString.Replace("\'", "");
        jsonString = Regex.Replace(jsonString, @"\w+", @"""$0""");
        jsonString = "[" + jsonString + "]";

        var data = JsonConvert.DeserializeObject<Data[]>(jsonString);
    }
}

public class Data
{
    public int Id {get;set;}
    public string Name {get;set;}
    public int Age {get;set;}
}

【讨论】:

    【解决方案2】:

    我设法弄明白了。 问题是我的 JSON 类可能不是写的。我复制了 UnityWebRequest 发送给我的字符串并将其保存到文本文件中。然后,我将此文本文件导入 Unity 资产文件夹,并从那里使用 Visual Studios “Paste Special”并为我创建了 JSON 类。

    从那里我使用 JSONUtility.FromJson 读取 UnityWebRequest,然后我可以从字符串中获取我需要的所有信息。

    感谢 Sani Singh Huttunen 为我提供解决此问题的线索。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      相关资源
      最近更新 更多