Wiktor Kisielewski
Wiktor Kisielewski

Reputation: 437

Path to value in .JSON

JSON accesed from my API on local network:

http://localhost:3005/products?q=lc

and it looks like this:

[
    {
        "id": "774944",
        "general": {
            "presentable_id": "774944",
            "name": "Blekk BROTHER LC1280XLC blå",
            "description": "<p><b>Få optimale utskriftsresultater, tydelig tekst og levende grafikk med Brother LC1280XLC-blekkpatronen i cyan.</b></p><p>Denne Brother LC1280XLC-blekkpatronen i cyan med stor kapasitet produserer levende, stilige resultater i utskrifter av høy kvalitet. Blekket er laget for optimal bruk med ulike Brother-maskiner og har flekkbestandig blekk som ikke falmer, for svært holdbare utskrifter. Denne blekkpatronen i cyan har en kapasitet på opptil 1200 sider.</p><li>Farge: Cyan</li><li>Kapasitet: Opptil 1200 A4-sider </li><li>Enkel å installere og skifte ut</li><li>Flekkbestandig og falmer ikke</li><li>Gir tekst og bilder med utmerket kvalitet</li><li>Se kompatibilitetsoversikten for passende maskiner</li>"
        },
        "brand": {
            "name": "Brother Norge AS"
        },
        "images": {
            "primary": {
                "large": "https://i.imgur.com/zYcibjw.jpg"
            }
        }
    },
    {
        "id": "774945",
        "general": {
            "presentable_id": "774945",
            "name": "Blekk BROTHER LC1280XLM rød",
            "description": "<p><b>Få optimale utskriftsresultater, tydelig tekst og levende grafikk med Brother LC1280XLM-blekkpatronen i magenta.</b></p><p>Denne Brother LC1280XLM-blekkpatronen i magenta med stor kapasitet produserer levende, stilige resultater i utskrifter av høy kvalitet. Blekket er laget for optimal bruk med ulike Brother-maskiner og har flekkbestandig blekk som ikke falmer, for svært holdbare utskrifter. Denne blekkpatronen i magenta har en kapasitet på opptil 1200 sider.</p><li>Farge: Magenta</li><li>Kapasitet: Opptil 1200 A4-sider </li><li>Enkel å installere og skifte ut</li><li>Flekkbestandig og falmer ikke</li><li>Gir tekst og bilder med utmerket kvalitet</li><li>Se kompatibilitetsoversikten for passende maskiner</li>"
        },
        "brand": {
            "name": "Brother Norge AS"
        },
        "images": {
            "primary": {
                "large": "https://i.imgur.com/ucfnti1.jpg"
            }
        }
    },
    {
        "id": "774946",
        "general": {
            "presentable_id": "774946",
            "name": "Blekk BROTHER LC1280XLY gul",
            "description": "<p><b>Få optimale utskriftsresultater, tydelig tekst og levende grafikk med den gule Brother LC1280XLY-blekkpatronen.</b></p><p>Denne gule Brother LC1280XLY-blekkpatronen med stor kapasitet produserer levende, stilige resultater i utskrifter av høy kvalitet. Blekket er laget for optimal bruk med ulike Brother-maskiner og har flekkbestandig blekk som ikke falmer, for svært holdbare utskrifter. Denne gule blekkpatronen har en kapasitet på opptil 1200 sider.</p><li>Farge: Gul</li><li>Kapasitet: Opptil 1200 A4-sider </li><li>Enkel å installere og skifte ut</li><li>Flekkbestandig og falmer ikke</li><li>Gir tekst og bilder med utmerket kvalitet</li><li>Se kompatibilitetsoversikten for passende maskiner</li>"
        },
        "brand": {
            "name": "Brother Norge AS"
        },
        "images": {
            "primary": {
                "large": "https://i.imgur.com/6zdrajU.jpg"
            }
        }
    }
]

I wish to get all 'id' item's value as an array, I have tried this:

console.log(products[0].id)
console.log('products?q=lc'[0].id)
console.log(products?q=lc[0].id)
console.log(this[0].id)

but returns only undefined. Any hint would be very appreciated here. How to get items value and use it as an array?

Upvotes: 0

Views: 52

Answers (2)

Ziv Ben-Or
Ziv Ben-Or

Reputation: 1194

After you parse your response with const data = JSOM.parse(response) you can map an new array with the ids only:

var data= [
    {
        "id": "774944",
        "general": {
            "presentable_id": "774944",
            "name": "Blekk BROTHER LC1280XLC blå",
            "description": "<p><b>Få optimale utskriftsresultater, tydelig tekst og levende grafikk med Brother LC1280XLC-blekkpatronen i cyan.</b></p><p>Denne Brother LC1280XLC-blekkpatronen i cyan med stor kapasitet produserer levende, stilige resultater i utskrifter av høy kvalitet. Blekket er laget for optimal bruk med ulike Brother-maskiner og har flekkbestandig blekk som ikke falmer, for svært holdbare utskrifter. Denne blekkpatronen i cyan har en kapasitet på opptil 1200 sider.</p><li>Farge: Cyan</li><li>Kapasitet: Opptil 1200 A4-sider </li><li>Enkel å installere og skifte ut</li><li>Flekkbestandig og falmer ikke</li><li>Gir tekst og bilder med utmerket kvalitet</li><li>Se kompatibilitetsoversikten for passende maskiner</li>"
        },
        "brand": {
            "name": "Brother Norge AS"
        },
        "images": {
            "primary": {
                "large": "https://i.imgur.com/zYcibjw.jpg"
            }
        }
    },
    {
        "id": "774945",
        "general": {
            "presentable_id": "774945",
            "name": "Blekk BROTHER LC1280XLM rød",
            "description": "<p><b>Få optimale utskriftsresultater, tydelig tekst og levende grafikk med Brother LC1280XLM-blekkpatronen i magenta.</b></p><p>Denne Brother LC1280XLM-blekkpatronen i magenta med stor kapasitet produserer levende, stilige resultater i utskrifter av høy kvalitet. Blekket er laget for optimal bruk med ulike Brother-maskiner og har flekkbestandig blekk som ikke falmer, for svært holdbare utskrifter. Denne blekkpatronen i magenta har en kapasitet på opptil 1200 sider.</p><li>Farge: Magenta</li><li>Kapasitet: Opptil 1200 A4-sider </li><li>Enkel å installere og skifte ut</li><li>Flekkbestandig og falmer ikke</li><li>Gir tekst og bilder med utmerket kvalitet</li><li>Se kompatibilitetsoversikten for passende maskiner</li>"
        },
        "brand": {
            "name": "Brother Norge AS"
        },
        "images": {
            "primary": {
                "large": "https://i.imgur.com/ucfnti1.jpg"
            }
        }
    },
    {
        "id": "774946",
        "general": {
            "presentable_id": "774946",
            "name": "Blekk BROTHER LC1280XLY gul",
            "description": "<p><b>Få optimale utskriftsresultater, tydelig tekst og levende grafikk med den gule Brother LC1280XLY-blekkpatronen.</b></p><p>Denne gule Brother LC1280XLY-blekkpatronen med stor kapasitet produserer levende, stilige resultater i utskrifter av høy kvalitet. Blekket er laget for optimal bruk med ulike Brother-maskiner og har flekkbestandig blekk som ikke falmer, for svært holdbare utskrifter. Denne gule blekkpatronen har en kapasitet på opptil 1200 sider.</p><li>Farge: Gul</li><li>Kapasitet: Opptil 1200 A4-sider </li><li>Enkel å installere og skifte ut</li><li>Flekkbestandig og falmer ikke</li><li>Gir tekst og bilder med utmerket kvalitet</li><li>Se kompatibilitetsoversikten for passende maskiner</li>"
        },
        "brand": {
            "name": "Brother Norge AS"
        },
        "images": {
            "primary": {
                "large": "https://i.imgur.com/6zdrajU.jpg"
            }
        }
    }
];

const ids = data.map(item => item.id);
console.log(ids)

Upvotes: 0

niccord
niccord

Reputation: 844

const products = [
{
"id": "774944",
"general": {
  "presentable_id": "774944",
  "name": "Blekk BROTHER LC1280XLC blå",
  "description": "<p><b>Få optimale utskriftsresultater, tydelig tekst og levende grafikk med Brother LC1280XLC-blekkpatronen i cyan.</b></p><p>Denne Brother LC1280XLC-blekkpatronen i cyan med stor kapasitet produserer levende, stilige resultater i utskrifter av høy kvalitet. Blekket er laget for optimal bruk med ulike Brother-maskiner og har flekkbestandig blekk som ikke falmer, for svært holdbare utskrifter. Denne blekkpatronen i cyan har en kapasitet på opptil 1200 sider.</p><li>Farge: Cyan</li><li>Kapasitet: Opptil 1200 A4-sider </li><li>Enkel å installere og skifte ut</li><li>Flekkbestandig og falmer ikke</li><li>Gir tekst og bilder med utmerket kvalitet</li><li>Se kompatibilitetsoversikten for passende maskiner</li>"
},
"brand": {
  "name": "Brother Norge AS"
},
"images": {
  "primary": {
    "large": "https://i.imgur.com/zYcibjw.jpg"
  }
}
},
{
"id": "774945",
"general": {
  "presentable_id": "774945",
  "name": "Blekk BROTHER LC1280XLM rød",
  "description": "<p><b>Få optimale utskriftsresultater, tydelig tekst og levende grafikk med Brother LC1280XLM-blekkpatronen i magenta.</b></p><p>Denne Brother LC1280XLM-blekkpatronen i magenta med stor kapasitet produserer levende, stilige resultater i utskrifter av høy kvalitet. Blekket er laget for optimal bruk med ulike Brother-maskiner og har flekkbestandig blekk som ikke falmer, for svært holdbare utskrifter. Denne blekkpatronen i magenta har en kapasitet på opptil 1200 sider.</p><li>Farge: Magenta</li><li>Kapasitet: Opptil 1200 A4-sider </li><li>Enkel å installere og skifte ut</li><li>Flekkbestandig og falmer ikke</li><li>Gir tekst og bilder med utmerket kvalitet</li><li>Se kompatibilitetsoversikten for passende maskiner</li>"
},
"brand": {
  "name": "Brother Norge AS"
},
"images": {
  "primary": {
    "large": "https://i.imgur.com/ucfnti1.jpg"
  }
}
},
{
"id": "774946",
"general": {
  "presentable_id": "774946",
  "name": "Blekk BROTHER LC1280XLY gul",
  "description": "<p><b>Få optimale utskriftsresultater, tydelig tekst og levende grafikk med den gule Brother LC1280XLY-blekkpatronen.</b></p><p>Denne gule Brother LC1280XLY-blekkpatronen med stor kapasitet produserer levende, stilige resultater i utskrifter av høy kvalitet. Blekket er laget for optimal bruk med ulike Brother-maskiner og har flekkbestandig blekk som ikke falmer, for svært holdbare utskrifter. Denne gule blekkpatronen har en kapasitet på opptil 1200 sider.</p><li>Farge: Gul</li><li>Kapasitet: Opptil 1200 A4-sider </li><li>Enkel å installere og skifte ut</li><li>Flekkbestandig og falmer ikke</li><li>Gir tekst og bilder med utmerket kvalitet</li><li>Se kompatibilitetsoversikten for passende maskiner</li>"
},
"brand": {
  "name": "Brother Norge AS"
},
"images": {
  "primary": {
    "large": "https://i.imgur.com/6zdrajU.jpg"
  }
}
},
]
const ids = products.map(product => product.id)
console.log(ids)

So map does the trick.

You can find more about awesome array functions here: https://www.w3schools.com/js/js_array_iteration.asp

Upvotes: 1

Related Questions