我是json的新手
网址中有一个json文件,
并将所有数据放入列表中,如下所示
System.Net.WebClient wc = new System.Net.WebClient();
string json = wc.DownloadString("http://192.168.1.7:90/eawebportal/poc/elements/index");
List<JsonFormat> myDeserializedObjList = (List<JsonFormat>)Newtonsoft.Json.JsonConvert.DeserializeObject(json, typeof(List<JsonFormat>));
我正在 myDeserializedObjList 中获取列表。其中JsonFormat是一个类,如下所示
public class JsonFormat
{
public string guid;
public string type;
public string name;
}
我的预期输出是:
guid = 1-1-1-1-1-1-1 ,类型=要求, name =元素名称
guid = 2-2-2-2-2-2-2 , type =要求, name =元素名称
但它输出为
guid = 539fe407-b5c8-4e02-ba7a-1410c0a80107 ,类型=要求, name =元素名称
guid = 539fe407-c0b8-4301-bf22-1410c0a80107 ,类型=要求, name =元素名称
为什么它如此......?
答案 0 :(得分:1)
如果我在控制台应用程序中使用完全硬编码的数据,它会按预期工作(见下文)。因此,下载的数据文件与您显示的不同,或者您的代码中还有其他内容正在更改它。
class Program
{
{
string json = @"
[
{ ""guid"" : ""1-1-1-1-1-1-1"", ""type"" : ""Requirement"", ""name"" : ""element name"" },
{ ""guid"" : ""2-2-2-2-2-2-2"", ""type"" : ""Requirement"", ""name"" : ""element name"" },
{ ""guid"" : ""3-3-3-3-3-3-3"", ""type"" : ""Requirement"", ""name"" : ""element name"" },
{ ""guid"" : ""4-4-4-4-4-4-4"", ""type"" : ""Requirement"", ""name"" : ""element name"" }
]";
List<JsonFormat> list = JsonConvert.DeserializeObject<List<JsonFormat>>(json);
foreach (JsonFormat jf in list)
{
Console.WriteLine("guid: " + jf.guid);
Console.WriteLine("type: " + jf.type);
Console.WriteLine("name: " + jf.name);
Console.WriteLine();
}
}
public class JsonFormat
{
public string guid;
public string type;
public string name;
}
}
输出:
guid: 1-1-1-1-1-1-1
type: Requirement
name: element name
guid: 2-2-2-2-2-2-2
type: Requirement
name: element name
guid: 3-3-3-3-3-3-3
type: Requirement
name: element name
guid: 4-4-4-4-4-4-4
type: Requirement
name: element name