Jak rozšířit objekt JSON s hodnotou dané proměnné v JavaScriptu?

hlasů
0

Jak mohu rozšířit objekt JSON s hodnotou dané proměnné v JavaScriptu? Tady je můj kód.

addIndexedResult = (inid) => { 
let url = 'https://jsonplaceholder.typicode.com/todos/'+inid
fetch(url)
  .then(response => response.json())
  .then(json => {
      console.log(json);
      // augment json with id & sort it out later in the browser
      let jsonAug = {inid: {...json}}; //output: {inid:{userId:1,id:7,title:illo expedita consequatur quia in,completed:false}}
      let my_results = this.state.myResults; 
      my_results.push(jsonAug);
      this.setState(prevState => ({
        myResults: my_results
      }));          
  })
}

Všimněte si výstup let jsonAug = ...příkazu nevyhodnocuje proměnné inid.

Jak mohu rozšířit JSON s hodnotou dne inid?

Položena 27/11/2018 v 18:04
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
0

použijte Objet.assign

let jsonAug = {id: Object.assign({},json) }; 

Odpovězeno 27/11/2018 v 18:26
zdroj uživatelem

hlasů
0

Měli byste přiřadit idhodnotu, vrácenou ze je načíst jsonpřímo na idhodnotě v jsonAugjako tak:

let jsonAug = {id: json.id};

Kompletní příklad může vypadat například takto

addIndexedResult = (id) => { 
    let url = 'https://jsonplaceholder.typicode.com/todos/'+id
    fetch(url)
    .then(response => response.json())
    .then(json => {
        console.log(json);
        // augment json with id & sort it out later in the browser
        let jsonAug = {id: json.id}; //output: {"id":{"userId":1,"id":7,"title":"illo expedita consequatur quia in","completed":false}}
        let my_results = this.state.myResults; 
        my_results.push(jsonAug);
        this.setState(prevState => ({
          myResults: my_results
        }));          
    })
}
Odpovězeno 27/11/2018 v 18:16
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more