繁体   English   中英

将 request.body 解析为字符串,然后创建 JSON

[英]Parsing request.body to string then create JSON

我现在被困在将字符串解析为 json 类型。 我已将请求正文归结为字符串,但似乎无法正确解析数据。

我有的:

String to parse:
uniq1.data.data.data 7 bleep\nuniq2.data.data.data 4 boop\nuniq3.data.data.data 7 bleep\ntets4.data.data.data 7 bleep\nuniq5.data.data.data 7 bleep\ntest6.data.data.data 7 fgws

想将字符串转换为具有以下结构的 JSON,以便我可以将其插入 mongoose db:

name: uniq1
typeID: 7
type: bleep

name: uniq2
typeID: 4
type: boop

name: tets4
typeID: 7
type: bleep

目前我正在尝试用逗号替换所有 '\n' 新行,以便我可以使用逗号解析数据,但是当我执行 bodyText.replace( new RegExp( "\n", "g" ),", ") 字符串中没有任何变化。 我还认为 go 可能有更好的方法来解决这个问题,我没有想到。

谢谢你的帮助!

你可以试试这个-

 let str = "uniq1.data.data.data 7 bleep\nuniq2.data.data.data 4 boop\nuniq3.data.data.data 7 bleep\ntets4.data.data.data 7 bleep\nuniq5.data.data.data 7 bleep\ntest6.data.data.data 7 fgws"; const arr = str.split("\n"); const json = arr.reduce((acc, curr) => { const [first, typeID, type] = curr.split(" "); const [name] = first.split('.'); acc.push({name: name, typeID, type}); return acc; }, []); console.log(json);
 .as-console-wrapper{min-height: 100%;important: top; 0;}

注意:我发现类似bleep\uniq5而不是bleep\nuniq5 如果request.body发送给你的正是这个,那么你就不走运了。

const a = "uniq1.data.data.data 7 bleep\nuniq2.data.data.data 4 boop\nuniq3.data.data.data 7 bleep\ntets4.data.data.data 7 bleep\nuniq5.data.data.data 7 bleep\ntest6.data.data.data 7 fgws";
const b = a.split("\n");
const c = b.map((el) => el.split(" "));
const d = c.map(([name, typeID, type]) => {
  return { name, typeID, type };
});
console.log(d);

b将主体分割成线。 c将每行拆分为一个数组,每个数组除以每个空格。 d将每行的数组与键映射到 object 中。

我稍微改变了输入。 \uniq5这部分看起来不一致,我认为应该是\nuniq5。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM