C#尝试将json字符串列表转换为string []

时间:2019-12-03 19:22:30

标签: c# json

编辑:想删除此问题,但我不允许。当我从某个统一编辑器窗口复制粘贴有效json到C#文件中进行调试时,将其格式化为奇怪的是,为什么我的问题中的json看起来不正确,并且永远无法转换为字符串[] ...在编辑器中,json字符串是正确的"[\"none\"]",所以我什至没有注意到复制粘贴时它损坏了...即使将代码粘贴到stackoverflow中也没有。第二个人指出它看起来不对劲,我知道是什么引起了问题。您现在可以停止投入我的意思了-我不允许删除问题。

原始问题:

我正在尝试将JSON字符串转换为C#Sting []

using Newtonsoft.Json;

private string[] list;
list = JsonConvert.DeserializeObject<string[]>("\"[(\"none(\"](\"");
Debug.Log(list);

但由于错误而失败:

  

ArgumentException:无法将System.String强制转换或转换为   System.String []。   Newtonsoft.Json.Utilities.ConvertUtils.EnsureTypeAssignable   (System.Object值,System.Type initialType,System.Type targetType)   (位于<97722d3abc9f4cf69f9e21e6770081b3>:0)

我也尝试过

private List<string> list;
list = JsonConvert.DeserializeObject<List<string>>("\"[(\"none(\"](\"");

由于错误而失败

  

ArgumentException:无法将System.String强制转换或转换为   System.Collections.Generic.List`1 [System.String]。   Newtonsoft.Json.Utilities.ConvertUtils.EnsureTypeAssignable   (System.Object值,System.Type initialType,System.Type targetType)   (位于<97722d3abc9f4cf69f9e21e6770081b3>:0)

我是否需要另一个函数,或者它与我的数据类型错误有关?

OBS:我正在统一编写脚本,所以我不确定是否有所有可用的“正常” C#库/东西。 Newtonsoft软件包来自统一资产商店。

1 个答案:

答案 0 :(得分:4)

您的Json字符串格式错误。

        var jsonString = "[\"none\"]";
        var deserializedList = JsonConvert.DeserializeObject<List<string>>(jsonString);
        var backToJsonString = JsonSerializer.ToJsonString(deserializedList, StandardResolver.Default);