访问 JSON 个字段(Angular - TypeScript)
Access JSON fields (Angular - TypeScript)
我有一个小型 Angular 应用程序,它向 API 发送请求并在 return 中获取 JSON 对象。
我想将结果写入文本字段,但不希望它“看起来像”JSON。
JSON的结构:
{
"Jane": 3,
"Tim": 5,
...
}
长度和键(名称)取决于对 API 的请求。
我这样访问 API:
this.http.post(url, inputData, { headers: headers, responseType: 'text' }).subscribe(data => this.updateTextField(data));
更新文本字段函数:
updateTextField(result: string) {
var json = JSON.parse(result);
this.outputTextField.nativeElement.value = this.outputTextField.nativeElement.value + this.inputTextField.nativeElement.value + "\n" + JSON.stringify(json) + "\n"
}
我只是不知道如何访问 JSON 对象中的字段...
一旦我可以访问这些字段,我就可以编写一个格式化函数来创建我想要的任何格式的输出字符串。
想法是打印按名称字母顺序排序的 JSON 的条目并添加一些额外的描述。
关于如何实现它的任何指示。
您可以简单地从 JSON 对象中获取密钥,前提是响应中有一个 JSON 对象,如您在问题中所示。按升序对键进行排序,并创建一个函数来根据排序后的键映射值。
updateTextField(result: string) {
const resultJson = JSON.parse(result);
//keys now sorted alphabetically
const keys = Object.keys(resultJson).sort((a, b) => a.localeCompare(b));
// do things with the keys using loop
for (const key of keys) console.log(resultJson[key]);
this.outputTextField.nativeElement.value = this.outputTextField.nativeElement.value + this.inputTextField.nativeElement.value + "\n" + JSON.stringify(json) + "\n"
}
我有一个小型 Angular 应用程序,它向 API 发送请求并在 return 中获取 JSON 对象。
我想将结果写入文本字段,但不希望它“看起来像”JSON。
JSON的结构:
{
"Jane": 3,
"Tim": 5,
...
}
长度和键(名称)取决于对 API 的请求。 我这样访问 API:
this.http.post(url, inputData, { headers: headers, responseType: 'text' }).subscribe(data => this.updateTextField(data));
更新文本字段函数:
updateTextField(result: string) {
var json = JSON.parse(result);
this.outputTextField.nativeElement.value = this.outputTextField.nativeElement.value + this.inputTextField.nativeElement.value + "\n" + JSON.stringify(json) + "\n"
}
我只是不知道如何访问 JSON 对象中的字段...
一旦我可以访问这些字段,我就可以编写一个格式化函数来创建我想要的任何格式的输出字符串。
想法是打印按名称字母顺序排序的 JSON 的条目并添加一些额外的描述。
关于如何实现它的任何指示。
您可以简单地从 JSON 对象中获取密钥,前提是响应中有一个 JSON 对象,如您在问题中所示。按升序对键进行排序,并创建一个函数来根据排序后的键映射值。
updateTextField(result: string) {
const resultJson = JSON.parse(result);
//keys now sorted alphabetically
const keys = Object.keys(resultJson).sort((a, b) => a.localeCompare(b));
// do things with the keys using loop
for (const key of keys) console.log(resultJson[key]);
this.outputTextField.nativeElement.value = this.outputTextField.nativeElement.value + this.inputTextField.nativeElement.value + "\n" + JSON.stringify(json) + "\n"
}