0

同じ名前の逆シリアル化オブジェクトに問題があります。これらは繰り返すことができますが、配列の形式でフォーマットされていないため、使用する Newtonsoft.Json ライブラリでは、これらのオブジェクトから配列を作成できません。私が直面しているJSONの例を次に示します。

{
"TESKO": {
    "Id": "19337",
    "Name": "PR3337",
    "Status": "Sold",
    "Code": "GPPD",
    "LastUpdatedDate": "2013-08-16",
    "internalId": "19337"
},
"TESKO": {
    "Id": "19337",
    "Name": "PR-6477",
    "Status": "Sold",
    "Code": "GPPD",
    "LastUpdatedDate": "2013-08-16",
    "internalId": "19337"
},
"BRITISHTOBACCO": {
    "Id": "19337",
    "Name": "PR-4634",
    "Status": "Sold",
    "Code": "GPPD",
    "LastUpdatedDate": "2013-08-16",
    "internalId": "19337"
},
"DDI": {
    "Id": "19337",
    "Name": "PR-6477",
    "Status": "Sold",
    "Code": "GPPD",
    "LastUpdatedDate": "2013-08-16",
    "internalId": "19FF337"
}}

upd: JSON 文字列を逆シリアル化するクラスは次のとおりです。

// Generated by Xamasoft JSON Class Generator
// http://www.xamasoft.com/json-class-generator

using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace ConsoleApplication2
{
    public class MyResponse
    {
        [JsonProperty("TESKO")]
        public TESKO[] TESKO { get; set; }

        [JsonProperty("BRITISHTOBACCO")]
        public BRITISHTOBACCO[] BRITISHTOBACCO { get; set; }

        [JsonProperty("DDI")]
        public DDI[] DDI { get; set; }
    }

    public class TESKO : CommonResult
    { }

    public class BRITISHTOBACCO : CommonResult
    { }

    public class DDI : CommonResult
    { }

    public class TP : CommonResult
    { }

    public class CommonResult
    {
        [JsonProperty("Id")]
        public string Id { get; set; }

        [JsonProperty("Name")]
        public string Name { get; set; }

        [JsonProperty("Status")]
        public string Status { get; set; }

        [JsonProperty("Code")]
        public string Code { get; set; }

        [JsonProperty("LastUpdatedDate")]
        public string LastUpdatedDate { get; set; }

        [JsonProperty("internalId")]
        public string InternalId { get; set; }
    }
}

デシリアライザーが「TESKO」オブジェクトを配列として扱うようにするにはどうすればよいですか?

4

2 に答える 2