iccast json-status.xls,无效json答案与空白歌曲标题
Icecast json-status.xls, not valid json answer with blank song title
当我的曲目在标签中没有标题时,Icecast显示-
而不是空白行,所以,我得到这样的json(作为例子)这个json无效,因为"title" : -
代替"title" : "-"
。我在这里检查了- http://jsonlint.com/所以,我不能做json_decode()
,函数返回null
{
"icestats": {
"admin": "admin@admin",
"host": "host.com",
"location": "Moscow",
"server_id": "Icecast 2.4.2",
"server_start": "Fri, 15 May 2015 16:25:24 +0300",
"server_start_iso8601": "2015-05-15T16:25:24+0300",
"source": [
{
"audio_info": "channels=2;samplerate=44100;bitrate=192",
"channels": 2,
"genre": "various",
"listener_peak": 3,
"listeners": 0,
"listenurl": "http://mds.planeset.ru:8000/mds.mp3",
"samplerate": 44100,
"server_description": "Трансляции Модель Для Сборки
музыка",
"server_name": "Модель для сборки - музыка",
"server_type": "audio/mpeg",
"stream_start": "Fri, 15 May 2015 16:25:33 +0300",
"stream_start_iso8601": "2015-05-15T16:25:33+0300",
"title": -,
"dummy": null
},
{
"audio_info": "channels=2;samplerate=44100;bitrate=192",
"channels": 2,
"genre": "various",
"listener_peak": 10,
"listeners": 9,
"listenurl": "http://mds.planeset.ru:8000/mds_voice.mp3",
"samplerate": 44100,
"server_description": "Трансляции Модель Для Сборки -
голос",
"server_name": "Модель для сборки - голос",
"server_type": "audio/mpeg",
"stream_start": "Fri, 15 May 2015 16:25:33 +0300",
"stream_start_iso8601": "2015-05-15T16:25:33+0300",
"title": "Фред Саберхаген - Доброжил",
"dummy": null
}
]
}
}
这是json的例子,你可以看到在第一种情况下,我有title: -
,因为它我不能json_decode。
有xml2json文件。从Doeke Zanstra https://github.com/doekman/xml2json-xslt在服务器上。这个文件,我猜,将xml转换为json,也许有一种方法可以添加新的规则,将-
转换为null
在空白title
行,但我不知道我怎么能做到。
这看起来像是Icecast (xml2json.xslt)使用的XML到JSON模板中的一个错误。它没有将'-'转换为字符串,也许因为它认为这是一个负数,尽管没有数字。我会试着调查一下,看看能不能找出一个漏洞。如果有人想试一试,并提出一个好的解决方案,我会很感激。
我想指出,虽然你的断言,你的轨道没有标签是错误的。您的源客户端软件似乎将流的标题字段设置为-
。如果它将title设置为空字符串,那么转换实际上将返回null
。这源于这样一个事实,即流媒体MP3由于最初是由shooutcast完成的而严重损坏。曲目没有单独的元数据字段,只有一个名为title的字段和各种使用约定。
您可以通过将其设置为空字符串来验证这一点。http://mds.planeset.ru:8000/admin/metadata.xsl?song=&mount=%2Fmds.mp3&mode=updinfo&charset=UTF-8
谢谢你的报告,我们只能修复我们知道的错误。(bug报告的首选位置是http://trac.xiph.org)
如果没有办法得到有效的json,使用:
$json = str_replace( '"title": -', '"title": null', $json );
json_decode()
之前将"title": -
替换为"title": null
。
- CSS-如何定位内容数据标题
- 如何删除多行HTML排列中的空白
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- 不同浏览器中的空白字符正则表达式行为
- Javascript中的空白是什么
- 在PHP中使用javascript更改页面标题'if'
- Facebook共享显示一个接一个的空白页面
- 如果我在javascript中输入无效的电子邮件或空白,如何显示特定的文本框边框红色
- Brightcove获取/显示HTML中的当前视频标题和描述
- React组件-设置页面标题
- jQuery动态更改标题
- HighCharts长标题文本在某些元素上重叠
- 将行添加到具有固定标题的HTML表中
- CKEditor v4:自制插件中对话框的动态标题
- 如何在自动完成时设置属性标题
- 从字符串末尾删除空白无效
- 单元格的工具提示或标题不显示超过2000个字符
- 如何从相应的控制器动态更新标题和描述
- 试图使固定表标题与水平滚动条.如何设置溢出:自动,但保持空白透明
- iccast json-status.xls,无效json答案与空白歌曲标题