локальная переменная guid заменяется новым значением GUID при чтении файла json с URL-адреса

#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