微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 Spring 请求哈希数时,Angular 中出现“JSON 语法错误:意外数字”

如何解决从 Spring 请求哈希数时,Angular 中出现“JSON 语法错误:意外数字”

每次我尝试从 Angular 11 上的 Spring API 调用字符串时,都会收到上述错误。我知道这个错误意味着我基本上是在尝试解析语法不正确的 JSON,但我正在发送一个字符串从我的 API 到 Angular 并获取该字符串,然后将其分配(或订阅)给一个字符串变量。我不知道 JSON.parse() 在哪里发生,我想禁用它或一起避免错误

这是我的 Angular 11 代码

Block.services.ts


  public getBlockHash(height:Number): Observable<string> {
    return this.http.get<string>(`${this.apiServerUrl}/blockhash/${height}`)
  }


block.component.ts

        public getBlockHash(height:Number){
    let result = this.service.getBlockHash(height)
    console.log(result)
    result.subscribe((data)=> this.blockHash = data)
  }

这是 Spring 代码

block.controller

    @GetMapping("/blockhash/{height}")
public String getBlockHash(@PathVariable int height) {
    String hashCode = service.getBlockHash(height);
    return hashCode;
}

blockservice.java

public String getBlockHash(int number) {
    String result = RPCRequest.rpcPost(GETBLOCKHASH,number);

    BaseEntity<String> baseEntity = JSONObject.parSEObject(result,new TypeReference<BaseEntity<String>>() {
            });
    return baseEntity.getResult();
}

解决方法

您可以设置一个选项,以避免将响应解析为 JSON 格式(默认)并将其作为纯文本获取。

尝试通过添加选项来更改 Angular Http 调用:{responseType: 'text'};像这样:

 public getBlockHash(height:Number): Observable<string> {
   return this.http.get(`${this.apiServerUrl}/blockhash/${height}`,{
     responseType: 'text'
   })
 }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?