在json中组合两个不同的对象

时间:2018-02-21 08:45:42

标签: c# json

下面给出了我的C#代码,它生成了一些json输出: -

var collection = new HeaderElements{
    messageid = "hdhd",
    source = "sid",
};

dynamic collectionWrapper = new{
    Header = collection,
    Elements = new{
        timestamp = "lk",
        value = "123"
    }
};

string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(collectionWrapper);
Console.WriteLine(jsonString);
Console.ReadKey();

以下是使用的类: -

public class HeaderElements{
    public string messageid { get; set; }
    public string source { get; set; }
}

public class Elements{
    public string timestamp { get; set; }
    public string value { get; set; }
}

我得到以下输出: -

"{\"Header\":{\"messageid\":\"hdhd\",\"source\":\"sid\"},\"Elements\":{\"timestamp\":\"lk\",\"value\":\"123\"}}"

但我希望我的输出格式如下: -

"{\"Header\":{\"messageid\":\"hdhd\",\"source\":\"sid\"},\"timestamp\":\"lk\",\"value\":\"123\"}"

我是json编程的新手,我没有办法解决这个问题。

1 个答案:

答案 0 :(得分:2)

不要将时间戳和值放入Elements变量中。将它们直接放入包装器中,如下所示:

dynamic collectionWrapper = new
{
    Header = collection,
    timestamp = "lk",
    value = "123"
};

这给出了你想要的输出:

{"Header":{"messageid":"hdhd","source":"sid"},"timestamp":"lk","value":"123"}