Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将JSON字符串转换为数组_C#_Json_Ssis_Json Deserialization - Fatal编程技术网

C# 如何将JSON字符串转换为数组

C# 如何将JSON字符串转换为数组,c#,json,ssis,json-deserialization,C#,Json,Ssis,Json Deserialization,我有以下JSON字符串: [ { "name":"Test diagnosis", "code":"324324", "table":"EXAMPLE", "addedby":"EDnurse", "dateadded":3243243, "qualifier":[ { "name":"Qualifier", "value":"Confirmed Dia

我有以下JSON字符串:

[
   {
      "name":"Test diagnosis",
      "code":"324324",
      "table":"EXAMPLE",
      "addedby":"EDnurse",
      "dateadded":3243243,
      "qualifier":[
         {
            "name":"Qualifier",
            "value":"Confirmed Diagnosis",
            "code":"23434434",
            "prefix":"[C] "
         },
         {
            "name":"Left/Right",
            "value":"Bilateral",
            "code":"324343",
            "suffix":" - Bilateral"
         }
      ],
      "prefix":"[C] ",
      "suffix":" - Bilateral"
   }
]
您可以看到这个JSON字符串中的限定符字段是嵌套的,有2个对象

我正在编写一个包,该包使用SSIS中的C#解析这个JSON字符串。我可以用限定符的一个对象解析字符串,但是当我添加第二个对象(左/右)并尝试将字符串转换为数组时,我收到一个错误

不带数组(适用于一个限定符对象):

这是我的限定类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SC_8aae662509ae4bab8491323924579173
{
    class qualifier
    {
        public string name { get; set; }
        public string value { get; set; }
        public string code { get; set; }
        public string prefix { get; set; }
    }
}

你试过下面这样吗

class Diagnosis
{
    public string name { get; set; }
    public string code { get; set; }
    public string table { get; set; }
    public string addedby { get; set; }
    public string dateadded { get; set; }

    public List<Qualifier> qualifier { get; set; }

    public string prefix { get; set; }
    public string suffix { get; set; }


}
类诊断
{
公共字符串名称{get;set;}
公共字符串代码{get;set;}
公共字符串表{get;set;}
由{get;set;}添加的公共字符串
公共字符串dateadded{get;set;}
公共列表限定符{get;set;}
公共字符串前缀{get;set;}
公共字符串后缀{get;set;}
}

据我所知,根据您的说法,一个诊断对象可以包含多个限定符对象。因此,您需要执行以下操作: 首先,将诊断类更改为具有以下属性:

public qualifier List<Qualifier> { get; set; }
下面的语句也会导致错误:

Diagnosis diagnosis = js.Deserialize<List<Diagnosis>>(reviewConverted);
Diagnosis Diagnosis=js.反序列化(reviewConverted);

您正试图在诊断对象中存储诊断对象列表,这当然没有意义。

诊断类中的限定符属性不应该是列表吗?您是否也可以发布
限定符
类代码?因为由于两个数组对象中的属性不同,它也可能失败,第一个数组对象称为
前缀
,第二个数组对象称为
后缀
它将无法自动反序列化它。添加了限定符类-谢谢。谢谢-这很有帮助。谢谢你的回答-它帮助我找到上面的解决方案。
class Diagnosis
{
    public string name { get; set; }
    public string code { get; set; }
    public string table { get; set; }
    public string addedby { get; set; }
    public string dateadded { get; set; }

    public List<Qualifier> qualifier { get; set; }

    public string prefix { get; set; }
    public string suffix { get; set; }


}
public qualifier List<Qualifier> { get; set; }
public qualifier Qualifier { get; set; }
Diagnosis diagnosis = js.Deserialize<List<Diagnosis>>(reviewConverted);