Not iterating through JSON result rows - php

I'm trying to simply print out the data for each row of a JSON result
The path structure is correct but its only doing the data for row 1
Here is the code
$row = $obj->response->result->Accounts->row;
foreach($row as $r)
{
print($r->FL[0]->content).',';
print($r->FL[1]->content).',';
print($r->FL[2]->content).',';
print($r->FL[3]->content).',';
print($r->FL[4]->content).',';
print($r->FL[5]->content).',';
print($r->FL[6]->content).',';
}
The JSON result
** Because people havent been reading the question properly here is the ENTIRE JSON result
{
"response": {
"result": {
"Accounts": {
"row": [
{
"no": "1",
"FL": [
{
"val": "ACCOUNTID",
"content": "3508588000000259001"
},
{
"val": "SMOWNERID",
"content": "3508588000000176021"
},
{
"val": "Account Owner",
"content": "Chris Yates"
},
{
"val": "Rating",
"content": "null"
},
{
"val": "Account Name",
"content": "Test Co"
},
{
"val": "Phone",
"content": "null"
},
{
"val": "Account Site",
"content": "null"
},
{
"val": "Fax",
"content": "null"
},
{
"val": "PARENTACCOUNTID",
"content": "null"
},
{
"val": "Parent Account",
"content": "null"
},
{
"val": "Website",
"content": "null"
},
{
"val": "Account Number",
"content": "0"
},
{
"val": "Ticker Symbol",
"content": "null"
},
{
"val": "Account Type",
"content": "null"
},
{
"val": "Ownership",
"content": "null"
},
{
"val": "Industry",
"content": "null"
},
{
"val": "Employees",
"content": "0"
},
{
"val": "Annual Revenue",
"content": "129000"
},
{
"val": "SIC Code",
"content": "0"
},
{
"val": "SMCREATORID",
"content": "3508588000000176021"
},
{
"val": "Created By",
"content": "Chris Yates"
},
{
"val": "MODIFIEDBY",
"content": "3508588000000176021"
},
{
"val": "Modified By",
"content": "Chris Yates"
},
{
"val": "Created Time",
"content": "2018-09-20 09:56:30"
},
{
"val": "Modified Time",
"content": "2018-09-20 12:39:56"
},
{
"val": "Billing Street",
"content": "null"
},
{
"val": "Shipping Street",
"content": "null"
},
{
"val": "Billing City",
"content": "null"
},
{
"val": "Shipping City",
"content": "null"
},
{
"val": "Billing State",
"content": "null"
},
{
"val": "Shipping State",
"content": "null"
},
{
"val": "Billing Code",
"content": "null"
},
{
"val": "Shipping Code",
"content": "null"
},
{
"val": "Billing Country",
"content": "null"
},
{
"val": "Shipping Country",
"content": "null"
},
{
"val": "Description",
"content": "null"
},
{
"val": "Last Activity Time",
"content": "2018-09-20 12:39:56"
},
{
"val": "Tag",
"content": "null"
}
]
},
There is the entire JSON result - there are over 400 rows

You should loop again in FL;
foreach($row as $r)
{
foreach($r->FL as $data)
print($data->content).',';
}
To stop outputting commas upon reaching a certain number;
foreach($row as $r)
{
$data_count = count($r->FL);
$counter = 0;
foreach($r->FL as $data)
{
if($data_count < $counter)
{
print($data->content).',';
}
else
{
print($data->content);
}
$counter++;
}
}
Display in new line (html);
foreach($row as $r)
{
foreach($r->FL as $data)
print($data->content).'<br>';
}
Display in new line (excel);
What I've noticed was you have to literally output your echo in a new line.
An excel file table has this data
|1|2|3|4|5|
|1|2|3|4|5|
and its csv file equivalent is
1,2,3,4,5
1,2,3,4,5

Related

Extract element from nested JSON

There is json response:
{
"id": "1234567890123456789",
"creation_date": 12345678,
"event": "WAITING_PAYMENT",
"version": "2.0.0",
"data": {
"product": {
"id": 213344,
"name": "Product Name",
"has_co_production": false
},
"affiliates": [
{
"name": "Affiliate name"
}
],
"buyer": {
"email": "buyer#email.com"
},
"producer": {
"name": "Producer Name"
},
"commissions": [
{
"value": 0.65,
"source": "MARKETPLACE"
},
{
"value": 3.10,
"source": "PRODUCER"
}
],
"purchase": {
"approved_date": 1231241434453,
"full_price": {
"value": 134.0
},
"original_offer_price": {
"currency_value": "EUR"
"value": 100.78,
},
"price": {
"value": 150.6
},
"order_date": "123243546",
"status": "STARTED",
"transaction": "HP02316330308193",
"payment": {
"billet_barcode": "03399.33335 33823.303087 198801027 2 876300015000",
"billet_url": "https://billet-link.com/bHP023163303193",
}
},
"subscription": {
"status": "ACTIVE",
"plan": {
"name": "plan name"
},
"subscriber": {
"code": "12133421"
}
}
}
}
My question is how to extract data["buyer"]["email"] in PHP ?
I only need to extract the email information from the buyer table inside the data table.
First, you need to decode the json to a PHP array (or an object), then you can access the requested information from the decoded data.
$data = json_decode('the json string most place here', true);
$email = $data['buyer']['email'];
Place your json string in the first argument of json_decode() function.

JSON sending fine as key:answer, not key:array

I'm having an issue where my android application is getting a positive result from our key:answer POST, but not from key:array for the same structure. My web developer is saying that I'm not serialising it properly, but every JSON tester I can find on the web is quite happy with the send, just not our web server. I'm sending my JSON in groups of 10 as a string (We had a previous issue where when sending about 200 keys it was giving issues, so I've split it down to 10 per send) and the JSON sent is as follows:
[{
"jobDetails": {
"jobid": "7",
"company": {
"cmid": "30"
}
},
"formName": "IPE Report",
"formHeader": "Activity",
"key": "date_inspDate",
"answervalues": "18-07-2017"
}, {
"jobDetails": {
"jobid": "7",
"company": {
"cmid": "30"
}
},
"formName": "IPE Report",
"formHeader": "Activity",
"key": "text_clientRep",
"answervalues": "testrep"
}, {
"jobDetails": {
"jobid": "7",
"company": {
"cmid": "30"
}
},
"formName": "IPE Report",
"formHeader": "Activity",
"key": "text_designCode",
"answervalues": "destdesign"
}, {
"jobDetails": {
"jobid": "7",
"company": {
"cmid": "30"
}
},
"formName": "IPE Report",
"formHeader": "Activity",
"key": "text_qcPlan",
"answervalues": "testqc"
}, {
"jobDetails": {
"jobid": "7",
"company": {
"cmid": "30"
}
},
"formName": "IPE Report",
"formHeader": "Activity",
"key": "text_equipDesc",
"answervalues": "testdesc"
}, {
"jobDetails": {
"jobid": "7",
"company": {
"cmid": "30"
}
},
"formName": "IPE Report",
"formHeader": "Activity",
"key": "text_companyName",
"answervalues": "testco"
}, {
"jobDetails": {
"jobid": "7",
"company": {
"cmid": "30"
}
},
"formName": "IPE Report",
"formHeader": "Activity",
"key": "text_drawingNo",
"answervalues": "testrev"
}, {
"jobDetails": {
"jobid": "7",
"company": {
"cmid": "30"
}
},
"formName": "IPE Report",
"formHeader": "Activity",
"key": "Detail",
"answervalues": [{
"register": 1,
"values": "act2"
}, {
"register": 2,
"values": "act3"
}]
}, {
"jobDetails": {
"jobid": "7",
"company": {
"cmid": "30"
}
},
"formName": "IPE Report",
"formHeader": "Activity",
"key": "Regulated",
"answervalues": [{
"register": 1,
"values": "YES"
}, {
"register": 2,
"values": "NO"
}]
}, {
"jobDetails": {
"jobid": "7",
"company": {
"cmid": "30"
}
},
"formName": "IPE Report",
"formHeader": "Activity",
"key": "Comments",
"answervalues": [{
"register": 1,
"values": "DIMENSIONS CHECK"
}, {
"register": 2,
"values": "HOLD POINT"
}]
}]
All is fine until it hits the Detail key, which is an array. This structure was sending fine last week, they claim they've changed nothing. Is it really a serialisation issue on my side or is the server just not accepting that key as either value or array?
From your error message:
"JSON parse error: Can not deserialize instance of java.lang.String out of START_ARRAY token;"
I think you problem is in 'answervalues'.
/* in some entries you have it as an array of objects*/
"answervalues": [{
"register": 1,
"values": "YES"
}, {
"register": 2,
"values": "NO"
}]
/* while in other entries as a string */
"answervalues": "testrev"
Talk with your developer to see how this need to be formatted. I believe the string values also need to be passed as an object in a single array. Something like..
"answervalues": [{
"register": 1,
"values":"testrev"
}]

Making a tree map with JSON data (Highcharts)

I am trying to bring data from the database to this Highcharts tree map, I have no idea how to format the JSON part of the code. When there is a clear xAxis and yAxis it is relatively easy. We use a php assembler to get all of the data from the query. I took the code straight from a Highcharts column chart with JSON that was working normally, I tried myself to update it and it keeps telling me the $.getJSON bit is an unexpected identifier.
$(function () {
// Drop-in fix:
Highcharts.seriesTypes.treemap.prototype.getExtremesFromAll = true;
$('#container').highcharts({
colorAxis: {
minColor: ' #000000',
maxColor: '#ffffff'
},
tooltip: {
backgroundColor: '#fffff',
formatter: function () {
return this.point.name + ":" + this.point.value;
}
}
$.getJSON("/charts/data/homepage-charts-data.php?<?php echo $_SERVER['QUERY_STRING']; ?>", function(json) {
options.categories = json[0]['data'];
options.series[0] = json[1];
chart = new Highcharts.Chart(options);
});
});
});
The code that formats the data (from: /charts/data/homepage-charts-data.php)
function displayJsonHomepageBallotMeasuresDataChart ($aaQuery) {
global $NIMSPv4;
$result = $NIMSPv4->query("$aaQuery");
$categories = array();
$categories['name'] = 'Election_Jurisdiction';
$series = array();
$series['name'] = 'Total_$';
while($row = $result->fetch_assoc()) {
$categories['data'][] = $row['Election_Jurisdiction'];
$series['data'][] = $row['Total_$'];
}
$result = array();
array_push($result,$categories);
array_push($result,$series);
print json_encode($result, JSON_NUMERIC_CHECK);
} // END CHART FUNCTION
Update: Here is the JSON I am trying to pull data from. Election_Jurisdiction and Total_$ is what I am trying to access for now, Candidate and Office_Sought could also be brought down as well considering it is a tree map and I will need to show the race.
{
"metaInfo": {
"format": "json",
"completeness": {
"allReports": "297",
"availableReports": "297",
"completeReports": "300",
"incompleteAvailable": "-3",
"lastUpdated": "2015-11-04 09:23:28",
"mostRecentReportDate": "2013-01-31"
},
"paging": {
"pageLink": "p=0",
"minPage": 0,
"currentPage": 0,
"maxPage": 0,
"totalPages": 1,
"totalRecords": "3",
"recordsPerPage": 100,
"recordsThisPage": 3
},
"grouping": {
"groupLink": "gro=c-t-id",
"currentGrouping": {
"c-t-id": "Candidate (General)"
},
"availableGrouping": {
"f-s": "Filing Jurisdiction (General)",
"f-eid": "Filer (General)",
"f-y": "Filing Year (Advanced)",
"c-t-i": "Incumbency Data (Advanced)",
"c-t-icod": "Incumbency Advantage (Advanced)",
"d-nme": "Original Name (Advanced)",
"d-amt": "Amount (Advanced)",
"d-dte": "Date (Advanced)",
"d-ludte": "Last Updated (Advanced)",
"d-typ": "Type of Transaction (Advanced)",
"d-llink": "Lobbying Entity? (Advanced)",
"d-ad-str": "Street (Advanced)",
"c-t-sts": "Status of Candidate (Candidates)",
"d-id": "Record (Contributors)",
"d-eid": "Contributor (Contributors)",
"d-et": "Type of Contributor (Contributors)",
"d-ccg": "Broad Sector (Contributors)",
"d-cci": "General Industry (Contributors)",
"d-ccb": "Specific Business (Contributors)",
"d-ad-cty": "City (Contributors)",
"d-ad-st": "State (Contributors)",
"d-ad-zip": "Zip (Contributors)",
"d-ins": "In-Jurisdiction (Contributors)",
"d-empl": "Employer (Contributors)",
"d-occupation": "Occupation (Contributors)"
}
},
"sorting": {
"sortLink": "so=u-tot&sod=0",
"currentSorting": {
"u-tot": "Total_$"
},
"sortingDirection": "descending",
"availableSorting": {
"c-t-id": "Candidate",
"c-t-pt": "Specific_Party",
"c-t-p": "General_Party",
"s": "Election_Jurisdiction",
"y": "Election_Year",
"c-r-t": "Election_Type",
"c-r-osid": "Office_Sought",
"c-t-ftsts": "Election_Status",
"c-t-ico": "Incumbency_Status",
"u-rec": "#_of_Records"
}
},
"recordFormat": {
"request": "c-r-id=16739",
"Candidate": {
"token": "c-t-id",
"id": "token value",
"Candidate": "display value"
},
"Candidate_Entity": {
"token": "c-t-eid",
"id": "token value",
"Candidate_Entity": "display value"
},
"Specific_Party": {
"token": "c-t-pt",
"id": "token value",
"Specific_Party": "display value"
},
"General_Party": {
"token": "c-t-p",
"id": "token value",
"General_Party": "display value"
},
"Election_Jurisdiction": {
"token": "s",
"id": "token value",
"Election_Jurisdiction": "display value"
},
"Election_Year": {
"token": "y",
"id": "token value",
"Election_Year": "display value"
},
"Election_Type": {
"token": "c-r-t",
"id": "token value",
"Election_Type": "display value"
},
"Office_Sought": {
"token": "c-r-osid",
"id": "token value",
"Office_Sought": "display value"
},
"Election_Status": {
"token": "c-t-ftsts",
"id": "token value",
"Election_Status": "display value"
},
"Incumbency_Status": {
"token": "c-t-ico",
"id": "token value",
"Incumbency_Status": "display value"
},
"#_of_Records": {
"#_of_Records": "display value"
},
"Total_$": {
"Total_$": "display value"
}
}
},
"records": [
{
"record_id": 1,
"request": "c-r-id=16739&c-t-id=76674",
"Candidate": {
"token": "c-t-id",
"id": "76674",
"Candidate": "BUTLER, MACK N"
},
"Candidate_Entity": {
"token": "c-t-eid",
"id": "15881718",
"Candidate_Entity": "BUTLER, MACK N"
},
"Specific_Party": {
"token": "c-t-pt",
"id": "139",
"Specific_Party": "REPUBLICAN"
},
"General_Party": {
"token": "c-t-p",
"id": "2",
"General_Party": "Republican"
},
"Election_Jurisdiction": {
"token": "s",
"id": "AL",
"Election_Jurisdiction": "AL"
},
"Election_Year": {
"token": "y",
"id": "2012",
"Election_Year": "2012"
},
"Election_Type": {
"token": "c-r-t",
"id": "3",
"Election_Type": "Special"
},
"Office_Sought": {
"token": "c-r-osid",
"id": "143",
"Office_Sought": "HOUSE DISTRICT 030"
},
"Election_Status": {
"token": "c-t-ftsts",
"id": "Won-General",
"Election_Status": "Won-General"
},
"Incumbency_Status": {
"token": "c-t-ico",
"id": "O",
"Incumbency_Status": "Open"
},
"#_of_Records": {
"#_of_Records": "197"
},
"Total_$": {
"Total_$": "94700.08"
}
},
{
"record_id": 2,
"request": "c-r-id=16739&c-t-id=76438",
"Candidate": {
"token": "c-t-id",
"id": "76438",
"Candidate": "MCGLAUGHN, BETH"
},
"Candidate_Entity": {
"token": "c-t-eid",
"id": "15881720",
"Candidate_Entity": "MCGLAUGHN, BETH"
},
"Specific_Party": {
"token": "c-t-pt",
"id": "33",
"Specific_Party": "DEMOCRATIC"
},
"General_Party": {
"token": "c-t-p",
"id": "1",
"General_Party": "Democratic"
},
"Election_Jurisdiction": {
"token": "s",
"id": "AL",
"Election_Jurisdiction": "AL"
},
"Election_Year": {
"token": "y",
"id": "2012",
"Election_Year": "2012"
},
"Election_Type": {
"token": "c-r-t",
"id": "3",
"Election_Type": "Special"
},
"Office_Sought": {
"token": "c-r-osid",
"id": "143",
"Office_Sought": "HOUSE DISTRICT 030"
},
"Election_Status": {
"token": "c-t-ftsts",
"id": "Lost-General",
"Election_Status": "Lost-General"
},
"Incumbency_Status": {
"token": "c-t-ico",
"id": "O",
"Incumbency_Status": "Open"
},
"#_of_Records": {
"#_of_Records": "39"
},
"Total_$": {
"Total_$": "22537.65"
}
},
{
"record_id": 3,
"request": "c-r-id=16739&c-t-id=28927",
"Candidate": {
"token": "c-t-id",
"id": "28927",
"Candidate": "MCHUGH, ROB"
},
"Candidate_Entity": {
"token": "c-t-eid",
"id": "15881719",
"Candidate_Entity": "MCHUGH, ROB"
},
"Specific_Party": {
"token": "c-t-pt",
"id": "139",
"Specific_Party": "REPUBLICAN"
},
"General_Party": {
"token": "c-t-p",
"id": "2",
"General_Party": "Republican"
},
"Election_Jurisdiction": {
"token": "s",
"id": "AL",
"Election_Jurisdiction": "AL"
},
"Election_Year": {
"token": "y",
"id": "2012",
"Election_Year": "2012"
},
"Election_Type": {
"token": "c-r-t",
"id": "3",
"Election_Type": "Special"
},
"Office_Sought": {
"token": "c-r-osid",
"id": "143",
"Office_Sought": "HOUSE DISTRICT 030"
},
"Election_Status": {
"token": "c-t-ftsts",
"id": "Lost-Primary",
"Election_Status": "Lost-Primary"
},
"Incumbency_Status": {
"token": "c-t-ico",
"id": "O",
"Incumbency_Status": "Open"
},
"#_of_Records": {
"#_of_Records": "0"
},
"Total_$": {
"Total_$": "0.00"
}
}
]
}

remove unnecessary hierarchy from json output

I am building an admin backend for an android app. My code provides a json output which the android developer then uses in his app. The developer asked me if it is possible to reduce the hierarchy level in the json output
as in remove the highlighted []0 and put the contents directly inside the []data instead.
This is my current php code
if($type == 1 ) //Handle item display
{
try
{
$query = "SELECT category FROM category";
$result= $DBH->query($query);
while($row = $result->fetch(PDO::FETCH_ASSOC))
{
$cat = $row['category'];
$query1 = "SELECT * FROM item WHERE catagory='$cat'";
$value = $DBH->query($query1);
if($row1 = $value->fetchAll(PDO::FETCH_OBJ)){
$main[] = array('data'=>array($row1));
}
else
{
$main[] = array('data'=>array('catagory'=>$row['category']));
}
}
echo json_encode($main);
$result->closeCursor(); //Close database connection free resources
$DBH = null;
}
catch(PDOException $e){
print $e->getMessage ();
die();
}
}
And the json output being generated
[
{
"data": [
[
{
"id": "2",
"name": "rice",
"price": "20",
"description": "Plain Rice",
"image": "4106_rice.jpg",
"time": "12 mins",
"catagory": "Lunch",
"subcat": ""
},
{
"id": "3",
"name": "item 1",
"price": "32",
"description": "item 1 description",
"image": "1370_2Ckjikljklkljh.jpg",
"time": "10",
"catagory": "Lunch",
"subcat": "Chicken Soup"
},
{
"id": "4",
"name": "hello",
"price": "10",
"description": "fgsdjfsfsdj",
"image": "",
"time": "76",
"catagory": "Lunch",
"subcat": ""
}
]
]
},
{
"data": {
"catagory": "Dinner"
}
},
{
"data": {
"catagory": "Soup"
}
},
{
"data": {
"catagory": "Test"
}
}
]
I am not very sure if I can make the changes he asked or if it is possible. Is it doable?
Your json structure is inconsistent and try this approach, will be easier for the developer to parse
{
"response": [
{
"data": [
{
"id": "2",
"name": "rice",
"price": "20",
"description": "Plain Rice",
"image": "4106_rice.jpg",
"time": "12 mins",
"catagory": "Lunch",
"subcat": ""
},
{
"id": "3",
"name": "item 1",
"price": "32",
"description": "item 1 description",
"image": "1370_2Ckjikljklkljh.jpg",
"time": "10",
"catagory": "Lunch",
"subcat": "Chicken Soup"
},
{
"id": "4",
"name": "hello",
"price": "10",
"description": "fgsdjfsfsdj",
"image": "",
"time": "76",
"catagory": "Lunch",
"subcat": ""
}
]
},
{
"data": [
{
"catagory": "Dinner"
}
]
},
{
"data": [
{
"catagory": "Soup"
}
]
},
{
"data": [
{
"catagory": "Test"
}
]
}
]
}

Parse a dynamic JSON object into PHP

Below is the JSON object I am trying to parse. It its basically the answers to a dynamic form. I know I can convert it to an array and then work with it. The issue I am having is the JSON object will be different every time.
{
"sections": [
{
"elements": [
{
"element": "greeting",
"components": {
"paragraph": {
"content": "Thank you for calling company name. This is a test call."
}
}
},
{
"element": "custom-fullname",
"components": {
"label": {
"content": ""
},
"first_name": {
"name": "1[custom-fullname][first_name]",
"label": "First Name",
"type": "text",
"value": "John",
"required": ""
},
"last_name": {
"name": "1[custom-fullname][last_name]",
"label": "Last Name",
"type": "text",
"value": "smith",
"required": ""
},
"help_text": {
"content": ""
}
}
},
{
"element": "custom-phone",
"components": {
"label": {
"content": "Phone Number"
},
"phone_ext": {
"name": "2[custom-phone][phone_ext]",
"type": "text",
"value": ""
},
"input_format": {
"name": "2[custom-phone][phone_format]",
"type": "hidden",
"value": "standard"
},
"help_text": {
"content": ""
},
"phone": {
"value": "7864564444",
"required": "false",
"name": "2[custom-phone][phone]"
}
}
},
{
"element": "custom-message",
"components": {
"label": {
"content": "Message"
},
"message": {
"name": "3[custom-message][message]",
"type": "text",
"value": "test time 22222",
"required": ""
},
"help_text": {
"content": ""
}
}
},
{
"element": "notes",
"components": {
"paragraph": {
"content": "This is a test call. Please mark this as a test."
}
}
}
],
"faqs": [
{
"question": "Should i have a FAQ?",
"answer": "Yes, this will help the agent to have a fluent conversation with the caller."
}
]
},
{
"elements": [
{
"element": "greeting",
"components": {
"paragraph": {
"content": "Thank you for calling company name. This is a test call."
}
}
},
{
"element": "custom-fullname",
"components": {
"label": {
"content": ""
},
"first_name": {
"name": "1[custom-fullname][first_name]",
"label": "First Name",
"type": "text",
"value": "robert",
"required": ""
},
"last_name": {
"name": "1[custom-fullname][last_name]",
"label": "Last Name",
"type": "text",
"value": "gonzalez",
"required": ""
},
"help_text": {
"content": ""
}
}
},
{
"element": "custom-phone",
"components": {
"label": {
"content": "Phone Number"
},
"phone_ext": {
"name": "2[custom-phone][phone_ext]",
"type": "text",
"value": ""
},
"input_format": {
"name": "2[custom-phone][phone_format]",
"type": "hidden",
"value": "standard"
},
"help_text": {
"content": ""
},
"phone": {
"value": "7864564444",
"required": "false",
"name": "2[custom-phone][phone]"
}
}
},
{
"element": "custom-message",
"components": {
"label": {
"content": "Message"
},
"message": {
"name": "3[custom-message][message]",
"type": "text",
"value": "Test",
"required": ""
},
"help_text": {
"content": ""
}
}
},
{
"element": "notes",
"components": {
"paragraph": {
"content": "This is a test call. Please mark this as a test."
}
}
}
],
"faqs": [
{
"question": "Should i have a FAQ?",
"answer": "Yes, this will help the agent to have a fluent conversation with the caller."
}
]
},
{
"elements": [
{
"element": "greeting",
"components": {
"paragraph": {
"content": "Thank you for calling company name. This is a test call."
}
}
},
{
"element": "custom-fullname",
"components": {
"label": {
"content": ""
},
"first_name": {
"name": "1[custom-fullname][first_name]",
"label": "First Name",
"type": "text",
"value": "robert",
"required": ""
},
"last_name": {
"name": "1[custom-fullname][last_name]",
"label": "Last Name",
"type": "text",
"value": "gonzalez",
"required": ""
},
"help_text": {
"content": ""
}
}
},
{
"element": "custom-phone",
"components": {
"label": {
"content": "Phone Number"
},
"phone_ext": {
"name": "2[custom-phone][phone_ext]",
"type": "text",
"value": ""
},
"input_format": {
"name": "2[custom-phone][phone_format]",
"type": "hidden",
"value": "standard"
},
"help_text": {
"content": ""
},
"phone": {
"value": "7861238975",
"required": "false",
"name": "2[custom-phone][phone]"
}
}
},
{
"element": "custom-message",
"components": {
"label": {
"content": "Message"
},
"message": {
"name": "3[custom-message][message]",
"type": "text",
"value": "test time 22222",
"required": ""
},
"help_text": {
"content": ""
}
}
},
{
"element": "radio",
"components": {
"label": {
"content": "Whats type of office are you looking for?"
},
"radiolist": [
{
"input": {
"value": "value_0",
"id": "single_choice_answer_0"
},
"label": {
"content": "Dedicated Space"
}
},
{
"input": {
"value": "value_1",
"id": "single_choice_answer_1"
},
"label": {
"content": "Parttime Space"
}
}
],
"single_choice_answer": {
"value": "value_0",
"name": "4[radio][single_choice_answer]",
"required": ""
},
"help_text": {
"content": ""
}
}
}
],
"faqs": [
{
"question": "Should i have a FAQ?",
"answer": "Yes, this will help the agent to have a fluent conversation with the caller."
}
]
}
]
}
So, for example a part of the JSON object looks like the following.
"components": {
"label": {
"content": "Whats type of office are you looking for?"
},
"radiolist": [
{
"input": {
"value": "value_0",
"id": "single_choice_answer_0"
},
"label": {
"content": "Dedicated Space"
}
},
{
"input": {
"value": "value_1",
"id": "single_choice_answer_1"
},
"label": {
"content": "Parttime Space"
}
}
],
"single_choice_answer": {
"value": "value_0",
"name": "4[radio][single_choice_answer]",
"required": ""
},
I would like to take that and do something like the following:
{
"components": {
"label": {
"content": "Whats type of office are you looking for?"
},
"answer": {
"value": "value_0",
"name": "Dedicated Space",
"required": ""
}
}
Really I just need the form questions and answer formatted a little nicer in a JSON object. However, I'm not sure how to code this in PHP.

Categories