Javascript 如何解析和连接特定于whit的分隔符
我的问题是,我必须在“product_link_href”之后连接所有文本:在一个庞大的系列中(有200多个这样的内容,所以我无法发布整个内容),比如: 它来自一个api,在windows power shell中是白色的,名称是response.data,我使用的是axios;我认为这个东西对机器来说只是纯文本,因为在我选择它之前它是绿色的,带有数据;但我仍然需要“product_link_href”之后的所有文本:以文本格式连接,并由“,”sepsarated 我使用的代码是Javascript 如何解析和连接特定于whit的分隔符,javascript,node.js,axios,Javascript,Node.js,Axios,我的问题是,我必须在“product_link_href”之后连接所有文本:在一个庞大的系列中(有200多个这样的内容,所以我无法发布整个内容),比如: 它来自一个api,在windows power shell中是白色的,名称是response.data,我使用的是axios;我认为这个东西对机器来说只是纯文本,因为在我选择它之前它是绿色的,带有数据;但我仍然需要“product_link_href”之后的所有文本:以文本格式连接,并由“,”sepsarated 我使用的代码是 axios.g
axios.get('https://randomapi/' + id + '/json?api_token=examplenotrealapitoken').then(response => {
console.log(response.data);
});
我尝试了JSON.parse和stringify,但没有任何效果。服务器的响应是stringized JSON对象,这些对象已与行返回字符“\n”连接起来 它不是JSON可解析的,因为它不是一个数组,它必须是一个数组才能成为有效的JSON 我采取的方法是将其强制为“字符串化JSON对象数组”。由于每个对象都很浅,因此没有嵌套,因此
}
字符无疑是字符串化对象的结尾
您可以调用massiveJSONishString.split('}')
,得到一个JSON字符串化对象数组,每个对象都缺少尾随}
然后映射到该数组,并为每个元素添加我们丢弃的尾部}
,以数组化它,然后JSON.parse()
该字符串,生成一个JSON对象数组
这是您要查找的代码:
const textArray = res.data.split("}");
const jsonArray = textArray.map(element => {
try {
return JSON.parse(`${element}}`);
} catch (e) {
return {
product_link_href: "MALFORMED JSON"
};
}
});
// console.log(jsonArray);
const product_link_hrefs = jsonArray.map(obj => obj.product_link_href);
const list = product_link_hrefs.join(", ");
console.log(list);
console.log(`You're welcome!`);
将整个数据放在粘贴箱中并链接它。它是字符串化的JSON。你需要对它进行JSON解析,然后可能映射到它上面-但是我需要查看数据结构,以知道如何准确地遍历它。好的,我会尝试在JSON中执行so158/5000。如果一个键名重复,只有最后一次出现计数,其他的只是中间值,它们会被它们的值覆盖next@MisterJojo奥巴马的评论已经足够了。下面是您要查找的代码。如果需要进一步的mods,请告诉我,如果我遇到了错误:const声明编辑中缺少初始值设定项已解决,现在我得到了错误:缺少)参数列表后,当我注释掉响应中格式错误的JSON行时,这段代码对我有效。好的,不,我错了,它工作得很好,我没有语言来表达我的感激;我真的认为像你这样的人是让stack overflow社区成为一个美丽的地方的原因Josh-你能添加一段介绍性的段落来解释为什么这样做有效吗?这可能会使它对未来的读者更有用。完成!谢谢你的提示。
const textArray = res.data.split("}");
const jsonArray = textArray.map(element => {
try {
return JSON.parse(`${element}}`);
} catch (e) {
return {
product_link_href: "MALFORMED JSON"
};
}
});
// console.log(jsonArray);
const product_link_hrefs = jsonArray.map(obj => obj.product_link_href);
const list = product_link_hrefs.join(", ");
console.log(list);
console.log(`You're welcome!`);