簡體   English   中英

Json.net將平面對象序列化為鍵值對數組

[英]Json.net serializing a flat object to key-value pair array

我正在嘗試將僅包含字符串屬性的平面對象序列化為JSON。 我得到的是:

{
    "Inputs": {
        "prop1": "value1",
        "prop2": "value2"
    }
}

我需要的是:

{
    "Inputs": [{
            "key": "prop1",
            "value": "value1"
        },
        {
            "key": "prop2",
            "value": "value2"
        }
    ]
}

我的第一個想法是編寫一個自定義轉換器,該轉換器首先將對象轉換為字典(基於https://stackoverflow.com/a/4944547/9806449 ),然后迭代鍵以將其構建為所需的格式,但是感覺必須有一個更簡單的解決方案讓我望而卻步。

有任何想法嗎? 謝謝!

如果我理解正確。 這是基本的序列化。 您想使用鍵,值對序列化對象。

public class Obj
{
    public Obj(string key, string value)
    {
        Key = key;
        Value = value;
    }

    public string Key { get; set; }

    public string Value { get; set; }
}

主要的,

 static void Main(string[] args)
 {
     var response = new Dictionary<string, List<Obj>>();
     var inputObjs = new List<Obj>();

     inputObjs.Add(new Obj("prop1", "value1"));
     inputObjs.Add(new Obj("prop2", "value2"));

     response.Add("Inputs", inputObjs);

     var serializedObj = JsonConvert.SerializeObject(response);

     Console.ReadKey();
 }

我使用Newtonsoft序列化對象

你會得到這個結果,

{
    "Inputs": [{
            "key": "prop1",
            "value": "value1"
        },
        {
            "key": "prop2",
            "value": "value2"
        }
    ]
}

暫無
暫無

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

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