如何使用 Newtonsoft 在 C# 中反序列化包含对象的 JSON 数组
How do I deserialize a JSON Array containing objects, in C# with Newtonsoft
[
{
"address":"addr1qx8trv7wualsnpj7xt"
},
{
"address":"addr1qxkyl8vvmvy92ngm0y"
},
{
"address":"addr1qywshwl6ud2myc0k2z"
}
]
以上是一个 JSON 文件,我正在尝试通过 NewtonsoftJSON 进行反序列化和读取。
但是,我收到以下错误
'Unexpected character encountered while parsing value: {. Path '', line 1, position 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);
}
}
}
创建一个 class 调用地址作为字符串 属性 调用地址然后执行
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;
}
}
}
快速的方法是定义一个具有 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
[
{
"address":"addr1qx8trv7wualsnpj7xt"
},
{
"address":"addr1qxkyl8vvmvy92ngm0y"
},
{
"address":"addr1qywshwl6ud2myc0k2z"
}
]
以上是一个 JSON 文件,我正在尝试通过 NewtonsoftJSON 进行反序列化和读取。
但是,我收到以下错误
'Unexpected character encountered while parsing value: {. Path '', line 1, position 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);
}
}
}
创建一个 class 调用地址作为字符串 属性 调用地址然后执行
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;
}
}
}
快速的方法是定义一个具有 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