0
내가 어떻게이 DataObject
한 단계 위로 이동할 수 있습니다 I 형 JsonObject
의 객체를 직렬화 때, 출력C#을 사용하여 JSON.net에서 JSON 객체의 깊이를 한 단계 위로 이동하는 방법은 무엇입니까?
{"DataObject":{"id":"1","name":"data name"}}
다음 얻을 JSON.net
를 사용하여 클래스의 변환기를 쓰기 위해 노력하고 있어요 다음 출력을 얻으십시오 :
{"id":"1","name":"data name"}
아래 관련 코드를 찾을 수 있습니다.
내 클래스의 형식은 다음과 같습니다 나는이 문서에서 this page을 언급하고 다음과 같은 변환 쓴
public class MyDataObject : IDataObject
{
[JsonProperty(PropertyName = "id", Required = Required.Always)]
public string Id { get; set; }
[JsonProperty(PropertyName = "name", Required = Required.Always)]
public string Name { get; set; }
}
:
public class JsonDataObjectConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
return typeof(IDataObject).GetTypeInfo().IsAssignableFrom(objectType.GetTypeInfo());
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
throw new NotImplementedException();
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
if (value is MyDataObject dataObject)
{
writer.WriteStartObject();
writer.WritePropertyName("id");
writer.WriteValue(dataObject.Id);
writer.WritePropertyName("name");
writer.WriteValue(dataObject.Name);
writer.WriteEndObject();
}
}
}
을
public class JsonObject
{
public JsonObject(IDataObject dataObject)
{
this.DataObject= dataObject;
}
[JsonConverter(typeof(JsonDataObjectConverter))]
public IDataObject DataObject;
}
DataObject
몇 가지 특성을 가지고 어떤 도움을 주셔서 감사합니다. 고맙습니다.
내가 그 방법을 볼 수
이 원하는 출력을 제공 레벨을 받고 있지만, 왜 그것을 제거하고 싶은지 궁금합니다. –
JSON을 보낼 응용 프로그램은 추가 수준이 없다고 예상합니다. –
이 사이트를 확인하십시오. https://stackoverflow.com/questions/34007512/webapi-return-json-array-without-root-node –