0
2 개의 복잡한 객체가 있습니다. 하나는 성공적으로 구문 분석하고 다른 하나는 예외를 던지고 있습니다. 객체 간의 유일한 차이점은 2 개의 double 유형 속성입니다. 나는 그들이 JSON에 존재하는 (첫 번째 경우에 그들은 (항목을 보유하지 않음) 비어 있어야하고, 두 번째 경우에 그들이 설정해야하므로 MyItem
이 두 라인을 보유하고이상한 Json.net 예외 "입력 문자열이 올바른 형식이 아닙니다."
var item = JsonConvert.DeserializeObject<MyItem>(result.ToString());
로 역 직렬화하고있어 및 deserialization 개체에서).
추적 :
at Newtonsoft.Json.Utilities.ConvertUtils.IntParseFast(Char[] value, Int32 start, Int32 length)
at Newtonsoft.Json.JsonTextReader.ParseNumber()
at Newtonsoft.Json.JsonTextReader.ParseValue()
at Newtonsoft.Json.JsonTextReader.ReadInternal()
at Newtonsoft.Json.JsonReader.ReadAsInt32Internal()
at Newtonsoft.Json.JsonTextReader.ReadAsInt32()
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType(JsonReader reader, JsonContract contract, Boolean hasConverter)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
어떤 제안이?
당신이 각각의 경우에 ('result.ToString()') 구문 분석하고있는 JSON을 게시하시기 바랍니다 코드의이 부분을 사용합니다. 짧지 만 완전한 * 예가 이상적입니다. –
'MyItem' 클래스와 두 개의 JSON 문자열을 게시합니다. – ken2k
@JonSkeet 이런 젠장, 얘들 아, 나는 햄버거를 사러 가야 해. :) diff 부분을 복사하는 동안 속성 중 하나가 int로 설정되어있는 것을 발견했다. –