Get Raw json string in Newtonsoft.Json Library

后端 未结 6 1189
别那么骄傲
别那么骄傲 2020-12-11 01:42

I have json like this

{
    \"name\": \"somenameofevent\",
    \"type\": \"event\",
    \"data\": {
        \"object\": {
            \"age\": \"18\",
               


        
6条回答
  •  旧巷少年郎
    2020-12-11 02:16

    You have to write a custom converter class (derived from Newtonsoft.Json.JsonConverter) which instructs the deserializer to read the whole object and to return the JSON string for the object.

    Then you have to decorate the property with the JsonConverter attribute.

    [JsonConverter(typeof(YourCustomConverterClass))]
    public string SomeObject { get; set; }
    

    There are good tutorials on the web on how to create custom converters, but - for your convenience - the core of your converter might look like this:

    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        return JObject.Load(reader).ToString();
    }
    

    This method reads a complete JSON object but returns the serialized version of the object as string. There is a bit of overhead because the object is deserialized to a JObject and then serialized again, but for me it's the easiest way to do this. Maybe you have a better idea.

提交回复
热议问题