读取 Json 对象并将值放入字符串列表中
Read Json object and put the values in a List of string
平台:C#
IDE: Visual Studio 2010
我正在尝试从 json 对象中读取所有值并将其放入 string 列表中,为此我正在执行 Json 反序列化,但它会抛出错误...
这是我试过的
List<string> lstPName = new List<string>();
JavaScriptSerializer strJsonSer = new JavaScriptSerializer();
localhost.Pstats objStats = new localhost.Pstats();
var strJson = objStats.GetAutoCompleteData(txtSearchBox.Text.Trim());
lstPName = strJsonSer.DeserializeObject<string>(strJson);
这是 Json 对象持有的内容
[{"PlayerName":"WA Mota"},{"PlayerName":"Atif Ahmed"}]
因此,我需要将玩家名称值添加到列表中...
简单直接的解决方案:
var strJson = "[{\"PlayerName\":\"WA Mota\"},{\"PlayerName\":\"Atif Ahmed\"}]";
var strJsonSer = new JavaScriptSerializer();
var list = new List<string>();
var result = strJsonSer.DeserializeObject(strJson) as object[];
if (result != null)
{
foreach (Dictionary<string, object> x in result)
{
list.Add(x["PlayerName"].ToString());
}
}
或者,如果您更喜欢 LINQ - 您可以使用类似 foreach
的循环来代替:
list = result
.Cast<Dictionary<string, object>>()
.Select(x => x["PlayerName"].ToString())
.ToList();
关键思想:DeserializeObject
用于像您这样解析 JSON 数据,为您提供 Dictionary<string, object>
数组,其中键是 JSON 属性 名称和值是JSON 属性 值。数组大小等于 JSON 数据中的对象数。
平台:C# IDE: Visual Studio 2010
我正在尝试从 json 对象中读取所有值并将其放入 string 列表中,为此我正在执行 Json 反序列化,但它会抛出错误...
这是我试过的
List<string> lstPName = new List<string>();
JavaScriptSerializer strJsonSer = new JavaScriptSerializer();
localhost.Pstats objStats = new localhost.Pstats();
var strJson = objStats.GetAutoCompleteData(txtSearchBox.Text.Trim());
lstPName = strJsonSer.DeserializeObject<string>(strJson);
这是 Json 对象持有的内容
[{"PlayerName":"WA Mota"},{"PlayerName":"Atif Ahmed"}]
因此,我需要将玩家名称值添加到列表中...
简单直接的解决方案:
var strJson = "[{\"PlayerName\":\"WA Mota\"},{\"PlayerName\":\"Atif Ahmed\"}]";
var strJsonSer = new JavaScriptSerializer();
var list = new List<string>();
var result = strJsonSer.DeserializeObject(strJson) as object[];
if (result != null)
{
foreach (Dictionary<string, object> x in result)
{
list.Add(x["PlayerName"].ToString());
}
}
或者,如果您更喜欢 LINQ - 您可以使用类似 foreach
的循环来代替:
list = result
.Cast<Dictionary<string, object>>()
.Select(x => x["PlayerName"].ToString())
.ToList();
关键思想:DeserializeObject
用于像您这样解析 JSON 数据,为您提供 Dictionary<string, object>
数组,其中键是 JSON 属性 名称和值是JSON 属性 值。数组大小等于 JSON 数据中的对象数。