如何解析从 JSON 到 JavaScript 对象的字符串映射?

问题描述 投票:0回答:2

我有一个来自后端 API 的响应格式如下。

{
"record_text": "AAA0000000100000001"
}

我还有一个用于解析

record_text
的布局图,如下所示。

string(3): record
string(8): record_number
string(8): sequence_number

我需要解析这个后端响应来创建一个 JS 对象,例如:

{
record: "AAA",
recordNumber: "00000001",
sequenceNumber: "00000001",
}

最好的方法是什么?

是否有类似于 https://beanio.org/ for java 的节点包我可以使用?

我知道我可以制作自己的自定义解析器函数,但从可维护性/可重用性的角度来看,并且由于字段数量众多,这似乎并不理想,所以想知道是否有更简洁的方法。

javascript json string parsing javabeans
2个回答
0
投票

看起来你只需要根据字符的位置将字符串分成几部分。如果我的理解是正确的,那么

string.substring()
应该很适合这份工作。

// get the data from your API
const response = await fetch(url);
const jsonObj = await response.json(); // { record_text: "AAA0000000100000001"}

// get just the property value
const recordText = jsonObj.record_text;

// add string parts to object props
const returnObject = {
    record: recordText.substring(0,2),
    recordNumber: recordText.substring(3,10),
    sequenceNumber: recordText.substring(11,18),
}

-1
投票

您可以使用

JSON.parse()
来做到这一点。

const jsonString = '{"name": "John", "age": 30, "city": "New York"}';
const obj = JSON.parse(jsonString);

解析后obj变量将包含一个JavaScript对象,其键值对与JSON字符串中的原始字符串映射相同。然后,您可以使用键名作为对象的属性名来访问这些值:

console.log(obj.name); // output: "John"
console.log(obj.age); // output: 30
console.log(obj.city); // output: "New York"

请记住,字符串映射中的键应该用双引号引起来,值可以是任何有效的 JSON 数据类型。

© www.soinside.com 2019 - 2024. All rights reserved.