首页 > 解决方案 > 为什么 JArray.Parse(json_array) 在结果前给我“{”?

问题描述

为什么 JArray.Parse(json_array) 在结果前给我“{”?(就像一个物体)我错过了什么?

 string _s = "[{\"person\": { \"b2b_pid\": \"157\"} }]";
 JArray _j = JArray.Parse(_s);

_j 返回:

{[
   {
     "person": {
         "b2b_pid": "157"
       }
   }
  ]
}

标签: c#jsonjson.net

解决方案


string _s = "[{\"person\": { \"b2b_pid\": \"157\"} }]";

仅仅因为您没有传递语法正确的 json 对象。在某些情况下,数组不能是 json 对象的根,即使您的 json 对象中只有一个数组,您也必须使用字典来包装数组。

PS:我注意到有一个新的标准支持array top lier。但是,请注意代码兼容性。

C# 语句JArray.Parse(_s);足够智能,可以尝试在缺少密钥时修复您的 json 问题。


推荐阅读