考虑到我有以下几点:
{ "version": "1.0" }我可以将其解析为动态JObject并使用:
dynamic result = JObject.Parse(myJson);
string verison = result.Version; //works <3但是服务器返回以下json
{ { "version": "1.0" } }newtonsoft认为这个json是有效的,但是不能再访问版本了:
dynamic result = JObject.Parse(myJson);
string verison = result.Version; //error当动态Version是雪崩时,如何访问result?
发布于 2016-12-05 00:21:57
{ { "version": "1.0" } }这个json被newtonsoft认为是有效的
这是不正确的,您将无法解析这一点,并将收到Newtonsoft.Json.JsonReaderException类型的异常(带有:无效的属性标识符:{ )。(路径'',第1行,位置2.)
无效的JSON:
{ { "version": "1.0" } }有效的JSON:
{ "version": "1.0" }(如果您有服务器控件,我建议您在服务器上执行必要的步骤以返回有效的JSON)
但是,在最坏的情况下,您可以通过在解析前删除第一个字符{和最后一个字符}来使这个JSON无效。例如:
var myJson = json.Substring(1, json.Length - 2);
dynamic result = JObject.Parse(myJson);
string version = result.version;这里的json是包含无效JSON的原始响应。
还请注意,对于您提供的JSON,您必须使用小写version作为result.version__。动态属性名必须与中的完全匹配
发布于 2016-12-04 23:05:31
我想你在“版本”中的大写字母"V“很麻烦。应该是"result.version“
https://stackoverflow.com/questions/40964686
复制相似问题