将 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);
    }
}