C# 使用数组将json字符串转换为对象

C# 使用数组将json字符串转换为对象,c#,json,json.net,C#,Json,Json.net,如何将上述json字符串转换为对象,例如: var test = {'abc':76,'data':'[6435,3310,56.06875]'} 我试过了 JsonConvert.DeserializeObject(测试) 但是得到这个错误: class item { public string abc {Get;set;} public float[] data {get;set} } json字符串有一些问题(我假设您使用的是C#)。data属性的第一个值实际上是一个字

如何将上述json字符串转换为对象,例如:

var test = {'abc':76,'data':'[6435,3310,56.06875]'}
我试过了
JsonConvert.DeserializeObject(测试)
但是得到这个错误:

class item
{
    public string abc {Get;set;}
    public float[] data {get;set}
}

json字符串有一些问题(我假设您使用的是C#)。
data
属性的第一个值实际上是一个字符串(给定引号)。这就是为什么会出现错误

您可以创建一个属性来保存字符串,然后创建另一个属性来解析解析后的
float
值。这是通过使用
JsonProperty
JsonIgnore
的几个JSON.Net属性来实现的。这些属性告诉序列化程序json字符串中的属性名称以及要忽略的属性

{"Error converting value \"[6435,3310]\" to type 'System.Single[]'. Path 'data', line 1, position 117."}

这可能对你有用

var i = JsonConvert.DeserializeObject<Foo>(test);

在什么语言/环境中?可能与OK重复,我发现这是因为我使用了“[x,x,x]”而不是[]Hello@Zhongmin。请查看我提供的解决方案,并确认它是否适用于您。:)
var i = JsonConvert.DeserializeObject<Foo>(test);
string jsn = @"{'abc':76,'data':'[6435,3310,56.06875]'}";
jsn = jsn.Replace("'[", "[");
jsn = jsn.Replace("]'", "]");
var ser = JsonConvert.DeserializeObject<ClsResult>(jsn);
public class ClsResult
{
    [JsonProperty("abc")]
    public int abc { get; set; }

    [JsonProperty("data")]
    public IList<double> data { get; set; }
}