我有一个来自后端 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 的节点包我可以使用?
我知道我可以制作自己的自定义解析器函数,但从可维护性/可重用性的角度来看,并且由于字段数量众多,这似乎并不理想,所以想知道是否有更简洁的方法。
看起来你只需要根据字符的位置将字符串分成几部分。如果我的理解是正确的,那么
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),
}
您可以使用
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 数据类型。