javascript - 在 JavaScript 中解析特定的 Json
问题描述
我正在努力解析 Json 以满足所需的需求。
我正在从 GraphQL 调用中提取数据,需要解析响应然后生成 XML 文件。
示例 JSON 响应:
{
"data": {
"products": {
"results": [{
"masterData": {
"current": {
"name": "Paragon Pen",
"description": "TEST",
"categories": [{
"name": "Writing Instrument"
}]
}
}
}]
}
}
}
我需要解析它并制作一个像这样的xml文件:
<?xml version="1.0"?><product><name>Paragon Pen</name><description>TEST</description><category>Writing Instrument</category></product>
我无法获得解析然后保留父元素的方法。例如,我想制作 xml 标记,然后在此标记内添加“名称”元素(写作工具)。任何帮助表示赞赏。
到目前为止我的 Parse 方法。:
//extractJSON function. Get the information and write it to the file.
function extractJSON(obj) {
for (const i in obj) {
if (Array.isArray(obj[i]) || typeof obj[i] === 'object') {
extractJSON(obj[i]);
} else {
if(VERBOSE){console.log(i + ': ' + obj[i]);}
//Call next step. Write to file.
eventEmitter.emit('writeToXML',i,obj[i]);
}
}
}
解决方案
为什么要解析整个对象?
您应该能够遍历数组并发出事件
data.products.results.forEach(result, index => eventEmitter.emit('writeToXML',index,result))
然而,示例 xml 只支持一种产品,对吗?所以每个发射都会创建自己的xml文件?
推荐阅读
- kotlin - 使用带有保留关键字属性的 Kotlin 数据类为 restTemplate 创建 JSON
- google-visualization - 无法读取未定义谷歌图表的属性“0”
- wordpress - 如何从 WordPress URL 中删除“/?COLLCC=”
- css - 无法在 css 中更改框的宽度 - 使用 extjs 框架
- java - Java11 中找不到 jdk.incubator.httpclient 模块
- spring - Spring 4 - Spring 重试 1.2.1.RELEASE @Recover 不起作用
- r - 在 R 中验证负二项式 glmm(使用 glmmadmb)
- javascript - 使用 PHP 或 JS 将 div 插入另一个
- iot - Wink API 订阅一夜之间停止发送
- postgresql - 使用 Hibernate/Spring 数据将枚举列表映射到 PostgreSQL 中的字段