从JSON对象中删除额外的括号和数据 - Javascript
Removing extra brackets and data from JSON object - Javascript
我正在使用此函数解析XML文件:
function xmlToJson(xml) {
var attr, child, attrs = xml.attributes,
children = xml.childNodes,
key = xml.nodeType,
obj = {},
i = -1,
o = 0;
if (key == 1 && attrs.length) {
obj[key = o] = {};
while (attr = attrs.item(++i)) {
obj[key][attr.nodeName] = attr.nodeValue;
}
i = -1;
} else if (key == 3) {
obj = xml.nodeValue;
}
while (child = children.item(++i)) {
key = child.nodeName;
if (obj.hasOwnProperty(key)) {
if (obj.toString.call(obj[key]) != '[object Array]') {
obj[key] = [obj[key]];
}
obj[key].push(xmlToJson(child));
} else {
obj[key] = xmlToJson(child);
}
}
return obj;
}
解析下一个文件会产生以下字符串(使用 JSON.stringify 查看):
文件(不包括"<"字符,因为内容当时不可见,但在我的文件中显然我已经有了它们):
?xml version="1.0" encoding="UTF-8" standalone="no"?>
playlist>
vid src="video/intro.mp4" type="video/mp4"/>
vid src="video/intro.mp4" type="video/mp4"/>
/playlist>
杰森:
{"playlist":{"#text":["'n","'n","'n"],"vid":[{"0":{"src":"video/intro.mp4","type":"video/mp4"}},{"0":{"src":"video/intro.mp4","type":"video/mp4"}}]}}
但我需要输出只是:
[{"0":{"src":"video/intro.mp4","type":"video/mp4"}},{"0":{"src":"video/intro.mp4","type":"video/mp4"}}]
对不起,如果是菜鸟问题,但我对JS和JSON一样陌生,我和他们在一起的日子可以用我的一只手的手指来计算。
提前谢谢。
编辑:已解决 - 由我自己解决:我决定转换它,"子字符串"它,然后重新转换剩余的字符串,而不是粗鲁地不允许将对象转换为字符串。结果如下:
JSON.parse(JSON.stringify(jsonPlaylist).substring(44,JSON.stringify(jsonPlaylist).length-2));
假设jsonPlaylist
是包含整个解析的 XML 文件的字符串 var。
在php
中:
$yourxmlstring = rtrim(ltrim($yourxmlstring, '{"playlist":{"#text":["'n","'n","'n"],"vid":'),"}}");
基本上我所做的就是用ltrim
和rtrim
来砍掉你不想要的东西。
在js
:
str.replace(/{"playlist":{"#text":'["''n","''n","''n"'],"vid":/,'').replace(/}+$/,'');
相关文章:
- 如何在上传前在浏览器中去除图像元数据(javascript)
- 从JSON对象中删除额外的括号和数据 - Javascript
- 测试两个变量是否包含一些数据 JavaScript
- 追加 POST 数据 javascript
- 通过设置SRC数据Javascript平滑淡入图像RGB
- 列出json数据javascript
- Yahoo api 从公共数据 JavaScript 切换到 oAuth
- 对恶意用户隐藏数据 JavaScript 函数
- JavaScript:如何预加载<对象>图像数据?/ JavaScript 的图像与<对象>
- 张贴base64数据JavaScript/jQuery
- 自动求和和和追加数据javascript
- 在数据Javascript上迭代时删除对象中以前的项
- 获取值数据
javascript - 获取数据javascript和推到数组Cordova
- 如何在用户单击提交按钮之前从输入框读取数据?(JavaScript)
- 在函数中传输数据?Javascript
- .filter在HTML表上不返回数据- JavaScript
- JSON数据&JavaScript(试图找到错误,可能只是语法)
- 图表数据javascript
- 不能给ajax加载的数据javascript