如何将两个 SerializeObject 转换为一个 SerializeObject

How to convert two SerializeObject into one SerializeObject

SerializeObject 的当前代码:

dict1={"type":"check"}
dict2={"mac":"00:00:00:00:00:00"}

var json = JsonConvert.SerializeObject(dict1);
var jsonStr = JsonConvert.SerializeObject(dict2);

var arrayOfObjects = JsonConvert.SerializeObject(
new [] { JsonConvert.DeserializeObject(json ), JsonConvert.DeserializeObject(jsonStr) });

它将 JSON 中的数据转换为:

[
{
"type": "CHECK_CONNECTION"
},
{
"mac_address": "00:00:00:00:00"
}
]

我想要像

这样的最终输出
{
"type":"check",
"mac_address":"00:00:00:00:00:00"
}
dict1={"type":"check"}
dict2={"mac":"00:00:00:00:00:00"}

var combinedObject = { "type": dict1.type, "mac": dict2.mac };
var jsonCustomObject = JsonConvert.SerializeObject(combinedObject);

请看看这是否对您有帮助。 您试图用 2 个元素序列化数组,因此它已反映在序列化内容中。如果您想要 json 表示具有 2 个属性的单个对象,那么您将创建一个具有 2 个属性的对象。

JObject jo = JObject.FromObject(item);
jo.Add("property_name", "property_value");
string json = jo.ToString();

您必须为您的数据定义一个模型。 像这样:

>

//System.ComponentModel.DataAnnotations.Schema

public class Dict
{
    [JsonProperty(PropertyName = "type")]
    public string Type { get; set; } 

    [JsonProperty(PropertyName = "mac")]
    public string MacAdress { get; set; }
}

所以,你可以这样连载:

>

//Your code
dict1={"type":"check"}
dict2={"mac":"00:00:00:00:00:00"}

var type = JsonConvert.SerializeObject(dict1);
var mac = JsonConvert.SerializeObject(dict2);

var dict = new List<Dict>();

dict.Add(new Dict(){ Type = type, MacAdress = mac });

var jsonContent = JsonConvert.SerializeObject(dict, new JsonSerializerSettings()
{
    NullValueHandling = NullValueHandling.Ignore
});

如果对你有帮助,请告诉我。