首页 > 解决方案 > JavaScript:如何获取 JSON 对象值并在 JSON 响应中只有一个值

问题描述

有一个 API,如果我们传递一个参数,它会给出 JSON 对象响应。但我的回应只有一个对象['virat']。并且尝试对条件语句进行比较,无法获得没有括号和冒号的值,需要纯文本,如virat.

例如:playerName == "virat"//这一步失败,我得到"[virat]". 如何在没有任何括号和冒号的情况下获得普通值,

let players = {};

this.http.get("/API/playersAPI",{
    headers,
    responseType: "text",
    params: {
      playerid: "test1",
    },
  }
)
.subscribe((res) => {
    players = res;         
    players = ['virat'];    //sample json object...     
    const playerName = JSON.stringify(players);
  if(playerName == "virat"){ //this step failing... need get value "virat" but getting [virat]
    //some validation
  }      
  },
  err => $(".dummyClass").text("error"),
);

标签: javascriptjsonangular

解决方案


您的返回对象不太对劲。看起来您正在尝试在数组内创建一个对象文字并将其传递给玩家。但是,如果您的对象失败,因为您只是在创建密钥。

let players = ['virat'],
    test = JSON.parse( JSON.stringify( players ) ),
    result = test[0];
    
console.log( result == "virat" );

或者

let players = [{ 'player': 'virat' }],
    test = JSON.parse( JSON.stringify( players ) ),
    result = test[0]['player'];
    
console.log( result == "virat" );

推荐阅读