Question

JS Map ID field from a parsed alternative field in JSON response.

  • 6 December 2023
  • 1 reply
  • 34 views

Badge

I am trying to fix the “Got a result missing the "id" property” issue.

return z.request(options)
.then((response) => {
response.throwForStatus();
const results = response.json;
const sales = results["data"].map((item) => {
return {
...item,
id: item["record_id"],
};
});
console.log(sales);
return sales;
});

In the code above, the “record_id” in our API contains a prefix of either “a_” or “t_” or “d_”. This means a “record_id” could be “a_123456”. I try to address it with:

return z.request(options)
.then((response) => {
response.throwForStatus();
const results = response.json;
const sales = results["data"].map((item) => {
return {
...item,
id: item["record_id"].replace("a_",10).replace("t_",11),
};
});
console.log(sales);
return sales;
});

However, when I view the output I get an error of: 

Invalid API Response: - Got a two or more results with the id of "10"

I would think it should return “10123456” based on the example above. Any input on why it’s not working properly? I’ve tried this in JSFiddle and it works fine.


This post has been closed for comments. Please create a new post if you need help or have a question about this topic.

1 reply

Userlevel 3
Badge +6

Hey @matthewcharlesb , 

Is it possible that the API’s response includes two or more items with the same record_id?

For example, I could imagine both sets of code hitting an error like this if multiple items had record_id values of simply a_ or t_ or d_.

If you haven’t already, it might help to examine the response body to ensure record_id is truly unique for each item.