Skip to main content
Question

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

  • December 6, 2023
  • 1 reply
  • 46 views

matthewcharlesb
Forum|alt.badge.img

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.

Did this topic help you find an answer to your question?
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

Forum|alt.badge.img+7
  • Zapier Staff
  • 91 replies
  • December 7, 2023

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.