private void ReadObject(JsonReader reader, ComplexValueResult value) { while (reader.Read()) { var key = ""; if (reader.TokenType == JsonToken.PropertyName) { key = reader.Value.ToString(); reader.Read(); } if (reader.TokenType == JsonToken.Null) { value.SingleValues.Add(key, null); } if (reader.TokenType == JsonToken.String) { value.SingleValues.Add(key, reader.Value.ToString()); } if (reader.TokenType == JsonToken.Date) { var datetime = (DateTime)reader.Value; value.SingleValues.Add(key, datetime.ToString("yyyy-MM-dd'T'HH:mm:ss'.'fff'Z'")); } if (reader.TokenType == JsonToken.EndObject) { break; } } }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var output = new Result.OutputDto(); var key = ""; while (reader.Read()) { if (reader.TokenType == JsonToken.PropertyName) { key = reader.Value.ToString(); } if (reader.TokenType == JsonToken.Date || reader.TokenType == JsonToken.String) { output.SingleValues.Add(ReadProperty(reader, key)); } if (reader.TokenType == JsonToken.StartObject) { var complex = new ComplexValueResult(); string currentKey = null; while (reader.Read()) { if (reader.TokenType == JsonToken.EndObject) { break; } if (reader.TokenType == JsonToken.PropertyName) { currentKey = reader.Value.ToString(); } if (reader.TokenType == JsonToken.String) { complex.SingleValues.Add(ReadProperty(reader, currentKey)); } } output.ComplexValues.Add(key, complex); } if (reader.TokenType == JsonToken.StartArray) { var multiValue = ReadArray(reader); output.MultiValues.Add(key, multiValue); } } return(output); }
private static void MapComplex(Output arg, OutputDto output) { foreach (var value in arg.ComplexValues) { var vals = new ComplexValueResult(); foreach (var simpleValue in value.SimpleValues) { vals.SingleValues.Add(simpleValue.Key, simpleValue.Value); } output.ComplexValues.Add(value.Key, vals); } }
private IMultiValueResult ReadComplexArray(JsonReader reader) { var complexArray = new MultiComplexValueResult(); while (true) { if (reader.TokenType == JsonToken.EndArray) { return(complexArray); } var complex = new ComplexValueResult(); ReadObject(reader, complex); complexArray.ComplexValues.Add(complex); reader.Read(); } }
private static void MapMulti(Output arg, OutputDto output) { foreach (var value in arg.MultiValues) { if (value.SimpleValues.Any()) { var multi = new MultiSingleValueResult(); foreach (var simpleValue in value.SimpleValues) { multi.SingleValues.Add(simpleValue); } output.MultiValues.Add(value.Key, multi); } if (value.ComplexValues.Any()) { var multi = new MultiComplexValueResult(); foreach (var complexValue in value.ComplexValues) { var complexValueResult = new ComplexValueResult(); foreach (var simpleValue in complexValue.SimpleValues) { complexValueResult.SingleValues.Add(simpleValue.Key, simpleValue.Value); } multi.ComplexValues.Add(complexValueResult); } output.MultiValues.Add(value.Key, multi); } } }