将 JSON 字符串转换为单声道数组
convert JSON string to array mono
我正在尝试将包含 JSON 数据的字符串转换为数组。
我正在使用 NewtonSoft.JSON
以下代码行将我的 JSON 数据保存在一个字符串中:
string jsonString = manage.getData();
我试过以下方法:
name[] result = JsonConvert.DeserializeObject<name[]>(jsonString);
string name = result.Name;
姓名class:
using System;
namespace Zoekfunctie {
public class name {
public string Name {get;set;}
public string Id { get; set; }
}
}
那么如何将我的 JSON 字符串转换为字符串数组?
JSON 字符串:[{"id":"42","naam":"Bas Jansen"},{"id":"41","naam":"Bas Jansen"}]
好的,所以您的 JSON 字符串已经是一个数组。
如果您正在寻找名称数组 class,那么这是我想到的第一件事。
List<Name> result = new List<Name>();
var tempArr = JArray.Parse(jsonString);
foreach(var item in tempArr){
result.Add(new Name(){Name = item.naam})
}
如果您需要数组而列表不够用,您可以调用 result.ToArray()
。
如果您的名字 class 完全代表了您 JSON 中的对象(缺少 ID 字段),您可以将 foreach
中的行替换为
result.Add(JsonConvert.Deserialize<Name>(item.ToString()));
作为 JToken 上的字符串方法(解析时 JArray 中元素的类型)returns 对象的 JSON 字符串。
希望这符合您的要求。
您只需调用 DeserializeObject
提供数组类型而不是单一的 class 类型。这是一个简短但完整的程序来演示这一点......我已经调整了你的 JSON 和 class 以相互匹配。
using System;
using System.IO;
using Newtonsoft.Json;
public class Person
{
public string Id { get; set; }
public string Name {get;set;}
}
class Program
{
static void Main(string[] args)
{
string text = "[{\"id\":\"42\",\"Name\":\"Bas Jansen\"},{\"id\":\"41\",\"Name\":\"Bas Jansen\"}]";
var array = JsonConvert.DeserializeObject<Person[]>(text);
Console.WriteLine(array.Length);
Console.WriteLine(array[0].Id);
}
}
我正在尝试将包含 JSON 数据的字符串转换为数组。
我正在使用 NewtonSoft.JSON
以下代码行将我的 JSON 数据保存在一个字符串中:
string jsonString = manage.getData();
我试过以下方法:
name[] result = JsonConvert.DeserializeObject<name[]>(jsonString);
string name = result.Name;
姓名class:
using System;
namespace Zoekfunctie {
public class name {
public string Name {get;set;}
public string Id { get; set; }
}
}
那么如何将我的 JSON 字符串转换为字符串数组?
JSON 字符串:[{"id":"42","naam":"Bas Jansen"},{"id":"41","naam":"Bas Jansen"}]
好的,所以您的 JSON 字符串已经是一个数组。
如果您正在寻找名称数组 class,那么这是我想到的第一件事。
List<Name> result = new List<Name>();
var tempArr = JArray.Parse(jsonString);
foreach(var item in tempArr){
result.Add(new Name(){Name = item.naam})
}
如果您需要数组而列表不够用,您可以调用 result.ToArray()
。
如果您的名字 class 完全代表了您 JSON 中的对象(缺少 ID 字段),您可以将 foreach
中的行替换为
result.Add(JsonConvert.Deserialize<Name>(item.ToString()));
作为 JToken 上的字符串方法(解析时 JArray 中元素的类型)returns 对象的 JSON 字符串。
希望这符合您的要求。
您只需调用 DeserializeObject
提供数组类型而不是单一的 class 类型。这是一个简短但完整的程序来演示这一点......我已经调整了你的 JSON 和 class 以相互匹配。
using System;
using System.IO;
using Newtonsoft.Json;
public class Person
{
public string Id { get; set; }
public string Name {get;set;}
}
class Program
{
static void Main(string[] args)
{
string text = "[{\"id\":\"42\",\"Name\":\"Bas Jansen\"},{\"id\":\"41\",\"Name\":\"Bas Jansen\"}]";
var array = JsonConvert.DeserializeObject<Person[]>(text);
Console.WriteLine(array.Length);
Console.WriteLine(array[0].Id);
}
}