c# - 我如何使用 JSON.Net 解析它?

标签 c# json

我正在尝试使用 JSON.Net 来解析从第三方 API 返回的结果。

如您所见,第一个 block 似乎是对随后的行 block 列的描述。我假设这不是标准做法,因为我在任何地方都找不到对这种风格的任何引用。 因为它不是通常的名称:值对格式,所以我有点难过。

{ cols: [{label: "name", type: 'string'},
    {label: "caller_id_number", type: 'string'},
    {label: "destination_number", type: 'string'},
    {label: "call_start", type: 'datetime'},
    {label: "duration", type: 'number'},
    {label: "bill_seconds", type: 'number'},
    {label: "uuid", type: 'string'},
    {label: "call_bill_total", type: 'number'},
    {label: "recorded", type: 'boolean'}],
    rows: [
 {c:[{v: "mydomain.com"},
     {v: "1650"},
     {v: "01902321654"},
     {v: new Date(2011, 6, 19, 14, 12, 25)},
     {v: 3},
     {v: 0},
     {v: "07752f6c-b203-11e0-92e6-495a2db86d6d"},
     {v: 0},
     {v: true}]}
 ,{c:[{v: "mydomain.com"},{v: "1652"},{v: "034534514"},{v: new Date(2011, 6, 19, 14, 11, 34)},{v: 53},{v: 27},{v: "e8fe3a06-b202-11e0-92dd-495a2db86d6d"},{v: 0.05},{v: true}]},
 {c:[{v: "mydomain.com"},{v: "1650"},{v: "034534580"},{v: new Date(2011, 6, 19, 14, 11, 34)},{v: 11},{v: 9},{v: "e8dfb9dc-b202-11e0-92dc-495a2db86d6d"},{v: 0.02},{v: true}]},
 {c:[{v: "mydomain.com"},{v: "1650"},{v: "03453453600"},{v: new Date(2011, 6, 19, 14, 11, 11)},{v: 14},{v: 9},{v: "db7efd52-b202-11e0-92d6-495a2db86d6d"},{v: 0.02},{v: true}]},
 {c:[{v: "mydomain.com"},{v: "1650"},{v: "0345345947"},{v: new Date(2011, 6, 19, 14, 9, 41)},{v: 42},{v: 21},{v: "a59314bc-b202-11e0-92c7-495a2db86d6d"},{v: 0.04},{v: true}]},
 {c:[{v: "mydomain.com"},{v: "1653"},{v: "345345420"},{v: new Date(2011, 6, 19, 14, 9, 41)},{v: 28},{v: 0},{v: "a5a953f8-b202-11e0-92c8-495a2db86d6d"},{v: 0},{v: true}]},
 {c:[{v: "mydomain.com"},{v: "1650"},{v: "353453120"},{v: new Date(2011, 6, 19, 14, 8, 52)},{v: 28},{v: 5},{v: "885515bc-b202-11e0-92bd-495a2db86d6d"},{v: 0.02},{v: true}]},
 {c:[{v: "mydomain.com"},{v: "1653"},{v: "34534567"},{v: new Date(2011, 6, 19, 14, 8, 36)},{v: 10},{v: 3},{v: "7efc86d0-b202-11e0-92b8-495a2db86d6d"},{v: 0.02},{v: true}]},
 {c:[{v: "mydomain.com"},{v: "1650"},{v: "34534584"},{v: new Date(2011, 6, 19, 14, 7, 43)},{v: 34},{v: 13},{v: "5f1cfb60-b202-11e0-92b2-495a2db86d6d"},{v: 0.02},{v: true}]},
 {c:[{v: "mydomain.com"},{v: "1653"},{v: "34534534561"},{v: new Date(2011, 6, 19, 14, 6, 52)},{v: 52},{v: 0},{v: "411b3faa-b202-11e0-92ab-495a2db86d6d"},{v: 0},{v: true}]}]}

我只得到了 var o = JObject.Parse(results); var records = o.SelectToken("rows").Select(s => s).ToList();

理想情况下,我想将记录拉回到类中,例如

public class CallDetailRecord
{
    public String Name { get; set; }
    public String CallerIdNumber { get; set; }
    public String DestinationNumber { get; set; }
    public DateTime CallStart { get; set; }
    public int Duration { get; set; }
    public String Uuid { get; set; }
    public Decimal CallBillTotal { get; set; }
    public bool Recorded { get; set; }
}

非常感谢您的帮助。

最佳答案

我不知道那是什么,但它不是 JSON。它看起来像 javascript,可能会用 javascript 引擎解析得很好。

JSON 规范:http://json.org/

验证器:http://jsonlint.com/

关于c# - 我如何使用 JSON.Net 解析它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6750582/

相关文章:

c# - Log4net RollingFileAppender 超时

c# - Fluent NHibernate - ProjectionList - ICriteria 返回空值

c# - ServicePointManager.SecurityProtocol 是如何工作的?

c# - 我可以在 RESTful 服务中使用 TCP 吗?

sql - Oracle JSON_EQUAL 条件的 T-SQL 等价物是什么?

c# - JWT承载 token 授权不起作用ASP Net Core Web API

php - 使用 php 将 JSON 数据插入 mysql

json - jinja2.exceptions.TemplateRuntimeError : no filter named 'split' 错误

json - 使用 jq,将 csv 文件转换为 json,使用 csv 文件名作为顶级对象名称

javascript - 导入 Json 格式的值以使用 Chart.js 创建条形图