我有一个JSON文件,像这样
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
和这样的类:
public class MyClass
{
private string key;
private string object;
public double Key
{
get { return key; }
set { key = value; }
}
public string Object
{
get { return object; }
set { object = value; }
}
public MyClass(string key, string object)
{
this.key = key;
this.object = object;
}
}
理想情况下,我想从JSON文件中获得一个具有值的List<String>
。我该如何做到这一点?
你可以反序列化成一个动态对象,然后直接访问你想要的值:
dynamic obj = JObject.Parse(yourJson);
string key1 = obj.key1;
string key2 = obj.key2;
string key3 = obj.key3;
将JSON反序列化为Dictionary<string, string>
:
var dict = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
如果你只想要一个值列表,你可以这样做:
var values = dict.Values.ToList();
-
创建一个类似于json结构的类,你可以使用http://json2csharp.com/
public class MyClass { public string key1 { get; set; } public string key2 { get; set; } public string key3 { get; set; } }
-
创建一个以json作为输入参数的方法,并将值添加到列表中,然后返回。
public list<string> GetValues(MyClass myClassObjects) { list<String> valueList = new list<String>(); for(int i=0; i< myClassObjects[0].count ; i++) { valueList.add(myClassObjects[0][i].toString()); } return valueList; }