c# - ServiceStack.Text DynamicJson fails to parse an array -
running following code:
var s = @"{ ""simple"": ""value"", ""obj"": { ""val"":""test"" }, ""array"": []"; var dyn = dynamicjson.deserialize(s); console.writeline(dyn.simple); console.writeline(dyn.obj); console.writeline(dyn.obj.val); console.writeline(dyn.array);   prints:
"value" {"val":"test"} base {system.dynamic.dynamicobject}: {"val":"test"} "test" "[]"   which means dyn.obj returns object can continue navigate through dyn.array returns string. meaning cannot iterate through list of objects inside.
what missing?
edit
i think have found issue. looking in github in pcl.dynamic.cs method yieldmember following:
private bool yieldmember(string name, out object result) {     if (_hash.containskey(name))     {         var json = _hash[name].tostring();         if (json.trimstart(' ').startswith("{", stringcomparison.ordinal))         {             result = deserialize(json);             return true;         }         result = json;         return _hash[name] == result;     }     result = null;     return false; }   it takes care of converting values starting { deserialized (dynamic) object.
i know @mythz looks @ questions in stackoverflow maybe can chime in thoughts. seems pretty simple handle when json starts [ right?
edit 2
i'm considering bug. i've made fix in code , submitted pull request. in case curious:
it indeed bug has been accepted servicestack.text's source code.
https://github.com/servicestack/servicestack.text/commit/7cd06d3e90bcbfd244af525ed7f584bd4badc31e
Comments
Post a Comment