C# C-如何解码不包含任何赋值的json数组
我收到一个需要解码的json数组:C# C-如何解码不包含任何赋值的json数组,c#,json,C#,Json,我收到一个需要解码的json数组: [143084,[8906.3,24.990013919999996,8906.8,32.58931742,-32.6,-0.0036,8907,7171.16062768,9075,8620]] 它似乎是一个有效的json数组,但我不确定如何解码它。 我通常使用: JsonConvert.DeserializeObject<object>(json); 我甚至不知道该用谷歌搜索什么,因为我不知道正确的单词 "channelId": 所有示例
[143084,[8906.3,24.990013919999996,8906.8,32.58931742,-32.6,-0.0036,8907,7171.16062768,9075,8620]]
它似乎是一个有效的json数组,但我不确定如何解码它。
我通常使用:
JsonConvert.DeserializeObject<object>(json);
我甚至不知道该用谷歌搜索什么,因为我不知道正确的单词
"channelId":
所有示例都使用看起来正常的json数组:/
很抱歉问了这个模糊的问题:/
任何帮助都将不胜感激!谢谢 我认为你有两个选择 1创建表示此视图的视图模型类
public class ViewModel
{
public string channelId { get; set; }
public string[] values { get; set; }
}
我认为json中的值是一个包含一个值的字符串数组
2使用本例中的JObject类
感谢丹尼尔A.怀特 我最终做了这样的事:
message = message.Replace("[", "");
message = message.Replace("]", "");
var array = message.Split(',');
它给了我一个单层数组,我现在可以把它转换成我需要的对象。
可能不漂亮,但很管用。谢谢你,丹尼尔 你可以有这样一个函数
var jsonArray = @"[143084,[8906.3, 24.990013919999996, 8906.8, 32.58931742, -32.6, -0.0036, 8907, 7171.16062768, 9075, 8620]]";
var deserializedArray = JArray.Parse(jsonArray);
var result = new MyObject
{
channelId = deserializedArray.First.ToString(),
values = JsonConvert.SerializeObject(deserializedArray.Last)
};
return result;
其中MyObject看起来像这样:
public class MyObject
{
public string channelId { get; set; }
public string values { get; set; }
}
这将产生以下结果:
{
"channelId": "143084",
"values": "[8906.3,24.990013919999996,8906.8,32.58931742,-32.6,-0.0036,8907,7171.16062768,9075,8620]"
}
这是一个带有数组的数组。你应该使用JArray.Parse对其进行反序列化,然后获取第二个项并将其转换为数组。如上面的评论所述,你可以使用JArray.Parse,然后访问其项。我不喜欢替换文本的想法,如果json格式良好,最好使用json读取器并处理可能的结果,通过这种方式,@soomonI agree在将来会出现较少的问题,但是json.parse不起作用:当前的JsonReader项不是object:Integer。路径,第1行,位置5。这个站点说它是有效的json:从JsonReader读取JArray时出错。当前JsonReader项不是数组:整数。路径第1行位置4.Json.parse不起作用:当前JsonReader项不是object:Integer。路径,第1行,位置5。我不明白,你能发布完整的代码吗?
{
"channelId": "143084",
"values": "[8906.3,24.990013919999996,8906.8,32.58931742,-32.6,-0.0036,8907,7171.16062768,9075,8620]"
}