is there way raw/original json value jtoken?
the problem:
var data = jobject.parse(@"{ ""simpledate"":""2012-05-18t00:00:00z"", ""patterndate"":""2012-11-07t00:00:00z"" }"); var value = data["simpledate"].value<string>(); the value 05/18/2012 00:00:00 need original string 2012-05-18t00:00:00z.
is there way original value? also, cannot change way how jobject created (e.g. change settings), because passed parameter class...
(reference: the original njsonschema issue)
you cannot original string, date strings recognized , converted datetime structs inside jsonreader itself. can see if do:
console.writeline(((jvalue)data["simpledate"]).value.gettype()); // prints system.datetime you can, however, extract dates in iso 8601 format doing:
var value = jsonconvert.serializeobject(data["simpledate"]); // value "2012-05-18t00:00:00z" this output jvalue in json-appropriate string format. since original dates in format, may meet needs.
(honestly, i'm surprised jvalue.tostring() outputs dates in non-iso format, given jobject.tostring() output contained dates in iso format.)
if able change settings while reading jobject, use jsonserializersettings.dateparsehandling = dateparsehandling.none:
var settings = new jsonserializersettings { dateparsehandling = dateparsehandling.none }; var data = jsonconvert.deserializeobject<jobject>(@"{ ""simpledate"":""2012-05-18t00:00:00z"", ""patterndate"":""2012-11-07t00:00:00z"" }", settings); var value = data["simpledate"].value<string>(); debug.writeline(value); // outputs 2012-05-18t00:00:00z there's no overload jobject.parse() takes jsonserializersettings, need use deserializeobject. setting gets propagated jsonreader.dateparsehandling.
Comments
Post a Comment