[
   {
      "address":"addr1qx8trv7wualsnpj7xt"
   },
   {
      "address":"addr1qxkyl8vvmvy92ngm0y"
   },
   {
      "address":"addr1qywshwl6ud2myc0k2z"
   }
]

Это файл JSON, который я пытаюсь десериализовать и прочитать через NewtonsoftJSON.

Однако я получаю следующую ошибку

'При анализе значения обнаружен неожиданный символ: {. Путь '', строка 1, позиция 2. '

Что я делаю неправильно? Все, что я хочу сделать, это проанализировать все адреса и поместить их в список.

Полный код:

using Newtonsoft.Json;
using System;
using System.Collections.Generic;

namespace TestJSON
{
    class Program
    {
        static void Main(string[] args)
        {
            string json = @"[{""address"":""addr1qx8trv7wualsnpj7xt""}, {""address"":""addr1qxkyl8vvmvy92ngm0y""}, {""address"":""addr1qywshwl6ud2myc0k2z""}]";

            List<string> addresses = JsonConvert.DeserializeObject<List<string>>(json);

            foreach (string address in addresses)
            {
                Console.WriteLine(address);
            }
            Console.WriteLine(addresses);
        }
    }
}
1
Slaypoons 4 Май 2021 в 22:40

2 ответа

Лучший ответ

Создайте класс с именем address, который в качестве строкового свойства с именем address, затем выполните

List<address > addresses = JsonConvert.DeserializeObject<List<address >>(json); 
foreach (address a in addresses) 
{ 
  Console.WriteLine(a.address ); 
} 

public class address 
{
   private string _address ="";

    // Declare a address property of type string:
    public string address 
    {
        get
        {
            return _address ;
        }
        set
        {
            _address = value;
        }
    }

}
0
user123456 4 Май 2021 в 19:54

Самый быстрый способ сделать это - определить анонимный тип, у которого есть свойство address, а затем использовать DeserializeAnonymousType.

string json = @"[{""address"":""addr1qx8trv7wualsnpj7xt""}, {""address"":""addr1qxkyl8vvmvy92ngm0y""}, {""address"":""addr1qywshwl6ud2myc0k2z""}]";
string[] list = JsonConvert.DeserializeAnonymousType(json, new[] { new { address = "" } }).Select(x => x.address).ToArray();

foreach (var item in list) Console.WriteLine(item);

Выход:

addr1qx8trv7wualsnpj7xt
addr1qxkyl8vvmvy92ngm0y
addr1qywshwl6ud2myc0k2z
2
John Wu 4 Май 2021 в 19:57