#url #c#-4.0 #json.net #json
#url #c #-4.0 #json.net #json
Вопрос:
Я очень новичок в json
У меня есть файл json в URL, который,
и я получаю все данные в список, как показано ниже
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, тип = Требование, имя = имя элемента
guid= 2-2-2-2-2-2-2 , тип = требование, имя = имя элемента
но он выдает вывод как
guid= 539fe407-b5c8-4e02-ba7a-1410c0a80107 , тип= Требование, имя = имя элемента
guid= 539fe407-c0b8-4301-bf22-1410c0a80107 , тип = Требование, имя = имя элемента
Почему это происходит так ..??
Комментарии:
1. В ваших данных должны быть фактические идентификаторы GUID, вопреки тому, что вы показали выше в своем примере JSON выше. Вот как выглядит GUID. См. en.wikipedia.org/wiki/Globally_unique_identifier
2. @BrianRogers Спасибо, и даже я знаю о GUID, но здесь я просто объявляю переменную с именем «guid» и жестко кодирую ее значение.
Ответ №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