I am trying to get some specific fields out of this Json. I have already managed to retrieve the ones in the first level but I need to get some out of the data field. I would like to get an array of the following data fields:
data = [(data artist id, data artist id name, and data rank), (data artist id, data artist id name, and data rank)...]
For example:
data = [(ed61fe981f9143fe82536a0e5e9836f7, Rihanna, 1), (668dfb9383684b79ba603605db21ac51, PSY, 2)..]
Any idea how to do this?
The Json is below :
{
" response": {
"class": "chart",
"data": [
{
"artist": {
"class": "artist",
"id": "ed61fe981f9143fe82536a0e5e9836f7",
"musicbrainz": "73e5e69d-3554-40d8-8516-00cb38737a1c",
"name": "Rihanna"
},
"rank": 1,
"value": 42437.6397
},
{
"artist": {
"class": "artist",
"id": "668dfb9383684b79ba603605db21ac51",
"musicbrainz": "f99b7d67-4e63-4678-aa66-4c6ac0f7d24a",
"name": "PSY"
},
"rank": 2,
"value": 21562.2685
},
… goes up to about 200 items
],
"end_time": 1358553600,
"id": "396c5b836ce74200b2b5b8ba1df28956",
"name": "high_flyers_plays_total",
"next_id": null,
"now_id": "b857276b34cf488f9a934765c3281af7",
"period": 86400,
"previous_id": "cb566393058c4ddfa0b957063fbdc2e3",
"start_time": 1358467200
},
"success": true
}
Here is my php code :
<?php
//Chart json url
$url = "http://website.com";
function get_json($url)
{
$ch = curl_init();
//Very short time to get json so long timeout not needed
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$json = get_json($url);
$info = json_decode($json,true);
//Prints the outer variables
print "This is the end_time for the chart : ";
print $info["response"]["end_time"]."<br />";
print "This is the name for the chart : ";
print $info["response"]["name"]."<br />";
print "This is the UUID of the chart : ";
print $info["response"]["id"]."<br />";
print "This is the period for the chart : ";
print $info["response"]["period"]."<br />";
/* gets the json data from the URL */
?>
A nested data structure is an array or object which refers to other arrays or objects, i.e. its values are arrays or objects. Such structures can be accessed by consecutively applying dot or bracket notation. Here is an example: const data = { code: 42, items: [{ id: 1, name: 'foo' }, { id: 2, name: 'bar' }] };
Use pd. read_json() to load simple JSONs and pd. json_normalize() to load nested JSONs. You can easily access values in your JSON file by chaining together the key names and/or indices.
Example - Parsing JSON Use the JavaScript function JSON.parse() to convert text into a JavaScript object: const obj = JSON.parse('{"name":"John", "age":30, "city":"New York"}'); Make sure the text is in JSON format, or else you will get a syntax error.
Array Data JSON. parse() converts array data into a Javascript array. The array data must be a valid JSON string. This is an uncommon use for JSON.
How about this?
$stuff = json_decode($json, true);
$results = array();
foreach($stuff['response']['data'] as $chunk) {
$artist = $chunk['artist'];
$id = $artist['id'];
$name = $artist['name'];
$rank = $chunk['rank'];
$tuple = array($id, $name, $rank);
$results[] = $tuple;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With