c# - 解析非标准 JSON

标签 c# java javascript json string-parsing

有谁知道以下代码是什么类型的 JSON(即使是!)?我正在从网站的 HTML 中检索它。我正在尝试使用 JSON 解析器在 C# 中解析它,但我必须根据 JSONLint 进行大量准备性编辑以将其格式化为“有效”JSON。例如,变量的名称都应该有双引号,而不是根本没有引号。

{
status: 'A',
displayed: 'Y',
start_time: '2010-11-2600: 00: 00',
start_time_xls: {
    en: '26thofNov201000: 00am',
    es: '26Nov201000: 00am'
},
suspend_at: '2010-11-2619: 57: 59',
is_off: 'Y',
score_home: '',
score_away: '',
bids_status: '',
period_id: '',
curr_period_start_time: '',
score_extra_info: '',
ev_id: 2257335,
blurb: '',
last_mkts_of_day: false,
follow_hcap_mkt: 10999896
}

这将始终具有相同的格式,我很乐意将其直接解析为 C# 或 java 中的对象。

最佳答案

您可以使用 Json.Net解析您的输入字符串。在 this extension class 的帮助下,您甚至可以如下使用 dynamic (用你的字符串测试)

dynamic obj = JsonUtils.JsonObject.GetDynamicJsonObject(jsonstr);
Console.WriteLine(obj.names.en);
Console.WriteLine(obj.status);
Console.WriteLine(obj.start_time_xls.en);
Console.WriteLine(obj.suspend_at);

使用纯 Json.Net

JObject jObj =  (JObject)JsonConvert.DeserializeObject(json3);
Console.WriteLine(jObj["names"]["en"]);
Console.WriteLine(jObj["status"]);
Console.WriteLine(jObj["start_time_xls"]["en"]);
Console.WriteLine(jObj["suspend_at"]);

关于c# - 解析非标准 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8662233/

相关文章:

c# - 计算两个日期之间的差异并获得以年为单位的值?

java - 如何理解 Java 泛型的这种用法

javascript - 为什么我的属性失去定义? (JS)

java - Java 中基本监听器行为的问题

javascript - 我如何创建我自己的 watch 功能类似于javascript中的 Angular

javascript - 如果我们不支持 IE6,那么为 IE 压缩 Javascript 文件是否有意义?

c# - 我应该如何在 MVC Core 中管理 DbContext 生命周期?

c# - 在循环中的两点之间移动对象?

c# - 用C#实现Hoey Shamos算法

java - 我可以监听 java 中的所有拖放事件吗?