Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将JSON数据反序列化到C中的列表中#_C#_Json_List_Serialization - Fatal编程技术网

C# 将JSON数据反序列化到C中的列表中#

C# 将JSON数据反序列化到C中的列表中#,c#,json,list,serialization,C#,Json,List,Serialization,经过数小时的搜索和尝试,有人能帮我解决以下简单问题吗 我有以下JSON字符串: [ { "key": 1234, }, { "key": 9876, } ] 如何读取此JSON并将所有值写入列表 到目前为止已多次尝试,但请参阅以下代码: List<int> content = new List<int>; var json = reader.ReadToEnd(); var obj = JObject.P

经过数小时的搜索和尝试,有人能帮我解决以下简单问题吗

我有以下JSON字符串:

[
    {
        "key": 1234,
    },
    {
        "key": 9876,
    }
]
如何读取此JSON并将所有值写入列表

到目前为止已多次尝试,但请参阅以下代码:

List<int> content = new List<int>;
var json = reader.ReadToEnd();

var obj = JObject.Parse(json);                    
其他尝试:

var token = obj.SelectToken("key");

foreach(var item in token)
{
   content.Add(JsonConvert.DeserializeObject<int>(item.value));
}
尝试运行最后一次尝试时,我收到以下错误消息: 从JsonReader读取JObject时出错。当前JsonReader项不是对象:StartArray。 即使JSON看起来如下所示:

[{\"key\":9999},{\"key\":9876}]
我会很高兴得到每一个答案

致以最诚挚的问候

请使用

可通过以下方式完成:

    List<string> yourList = JsonConvert.DeserializeObject(YourJson).ToList();
List yourList=JsonConvert.DeserializeObject(YourJson.ToList();

注意:它只能保存为字符串列表,但可以使用以下命令调用:
yourList。YourKeyName

取决于所需内容,但也可以为json创建指定的类。 下面的类表示json字符串

public class RootObject
{
    public int key { get; set; }
}
然后可以按如下方式反序列化json字符串:

string json=reader.ReadToEnd();

List<RootObject> myobs=JsonConvert.DeserialiseObject<List<RootObject>>(json);

按照@bolkay所说的,您需要定义您的对象:

public class KeyClass
{
    public int Key { get; set; }
}
例如,如果JSON在一个名为jsString的变量中

        List<int> content = new List<int>();
        var keys = JsonConvert.DeserializeObject<List<KeyClass>>(jsString);
        foreach (var item in keys)
        {
            content.Add(item.Key);
        }
列表内容=新列表();
var keys=JsonConvert.DeserializeObject(jsString);
foreach(键中的变量项)
{
content.Add(item.Key);
}

我添加了以下内容的可能重复:返回JsonConvert.DeserializeObject(json.ToList();不幸的是,他说:“object”不包含“ToList”的定义(可能缺少using指令)“确保你的函数也是
List
。我再次检查了它。是的,我的函数也是List:private List getKey(string ip){List content=new List();var request=HttpWebRequest.Create(string.Format(ip,path));使用(HttpWebResponse response=request.GetResponse()作为HttpWebResponse){using StreamReader=new StreamReader(response.GetResponseStream()){var json=reader.ReadToEnd();content=JsonConvert.DeserializeObject(json.ToList();}}}}返回内容;}
foreach(var ob in myobs){
Console.WriteLine(ob.key);
}
public class KeyClass
{
    public int Key { get; set; }
}
        List<int> content = new List<int>();
        var keys = JsonConvert.DeserializeObject<List<KeyClass>>(jsString);
        foreach (var item in keys)
        {
            content.Add(item.Key);
        }