简体   繁体   English

JSON到数组C#

[英]JSON to Array c#

I Have a JSON with this values 我有一个带有此值的JSON

{"interface":"ALL",
 "dv":"1",
 "alarms":[{"Id":0,
            "Type":"URL",
            "Trigger":"facebook",
            "Output":"video"},
           {"Id":1,
            "Type":"URL",
            "Trigger":"twitter",
            "Output":"video"},
           {"Id":2,
            "Type":"URL",
            "Trigger":"ebay",
            "Output":"video"}
]}

And i would like parse this information to mi C# Code 我想将此信息解析为mi C#代码

I do this for Strings tags and works ok 我为Strings标记执行此操作并正常工作

JObject obj = JObject.Parse(json);
String value =(String) obj["dv"]; 

but i have an error for tag Array alarms. 但我有一个标签数组警报错误。 I've tried with: 我尝试过:

Array value = null;
value =(Array) obj["alarm"]; 

but i get an error (Message=Can not convert Array to byte array. Source=Newtonsoft.Json). 但我得到一个错误(消息=无法将数组转换为字节数组。源= Newtonsoft.Json)。

Try convert your alarms into a JArray : 尝试将alarms转换为JArray

JArray value = null;
value = obj["alarms"] as JArray;

You could use JavaScriptSerializer for this. 您可以为此使用JavaScriptSerializer
For example: 例如:

JavaScriptSerializer jss = new JavaScriptSerializer();
Dictionary<string, object> dict = jss.Deserialize<Dictionary<string, object>>(jsonString);

Using Json.Net 使用Json.Net

JArray value = null;
value = obj["alarms"] as JArray;

The casting should be JArray 强制转换应为JArray

Your json string has a reserved c# keyword: interface . 您的json字符串具有保留的c#关键字: interface Try changing this and see if it works. 尝试更改此设置,看看是否可行。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM