簡體   English   中英

如何將JSON字符串轉換為數組

[英]How to convert JSON string to an array

我有以下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字符串中的Qualifier字段是嵌套的,並且具有2個對象。

我正在研究一個使用SSIS中的C#解析此JSON字符串的程序包。 我可以使用限定符的一個對象來解析字符串,但是當我添加第二個對象(左/右)並嘗試將字符串轉換為數組時,會收到錯誤消息。

沒有數組(與一個Qualifier對象一起使用):

Diagnosis diagnosis = js.Deserialize<Diagnosis>(reviewConverted);

使用數組(返回錯誤,指出我無法將類型診斷隱式轉換為類型診斷):

Diagnosis diagnosis = js.Deserialize<List<Diagnosis>>(reviewConverted);

我還使用以下類定義診斷字段:

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

namespace SC_8aae662509ae4bab8491323924579173
{
    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 qualifier Qualifier { get; set; }

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


    }
}

這是我的預選課:

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


}

據我所知,根據您的發言,1個診斷對象可以包含多個Qualifier對象。 因此,您需要執行以下操作:首先,將Diagnosis類更改為具有以下屬性:

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

代替

public qualifier Qualifier { get; set; }

同樣,以下語句是導致您出錯的原因:

Diagnosis diagnosis = js.Deserialize<List<Diagnosis>>(reviewConverted);

您試圖將“診斷列表”對象存儲在“診斷”對象中,這毫無意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM