Re: Stripping a JSON of extra characters in PHP

[email protected] (The Doctor) Mon, 6 Feb 2023 01:31:00 -0000 (UTC)
Newsgroups comp.lang.php
Organization NetKnow News
Message-ID <[email protected]>
In article <[email protected]>,
J.O. Aho <[email protected]> wrote:
>On 01/02/2023 16:45, The Doctor wrote:
>>  From https://developer.moneris.com/livedemo/checkout/preload_req/guide/dotnet
>> 
>> I need a JSON as follows:
>> 
>> {
>> 	"store_id":"moneris",
>> 	"api_token":"hurgle",
>
>For console output:
>echo json_encode($object, JSON_PRETTY_PRINT);
>
>For html output:
><pre>
><?php echo nl2br(json_encode($yourArrayOrObject, JSON_PRETTY_PRINT)); ?>
></pre>
>
>If you have an already json encoded string, then you need to use 
>json_decode to get an object and then encode the object to prettify the 
>json.
>
>
>>
>[{"store_id":"store3","api_token":"yesguy","checkout_id":"chkt23NGFtore3","txn_total":"126.00","environment":"qa","action":"preload"},[{"cart":[[[{"items":{"url":"https:\/\/www.pdsolutions.ca\/images\/newwhiteheader.png","description":"Agricultural Health
>Study","product_code":"AHS-1298","unit_cost":60,"quantity":"1"},"subtotal":60,"tax":{"amount":3,"description":"GST","rate":"0.05"}},{"items":{"url":"https:\/\/www.pdsolutions.ca\/images\/newwhiteheader.png","description":"Pesticide
>Applicator
>Records","product_code":"PAR-1302","unit_cost":60,"quantity":"1"},"subtotal":60,"tax":{"amount":3,"description":"GST","rate":"0.05"}}]]]}],[{"contact_details":{"first_name":"Dave","last_name":"Yadallee","email":"[email protected]","phone":"7809999999"}}],[{"billing_details":{"address_1":"","city":"","province":"","country":"CA","postal_code":""}}]]
>>                  
>> 	       How can I carefully strip unnecessary punctuation?
>
>The unnecessary [] that you get is for you use an array to store things 
>inside, use a class object instead.
>
>Here is a small example, where only the cart is an array in the json:
>
>--- start of php ---
>$a = new class{};
>$a->store_id = "123";
>$a->api_token = "432";
>$a->cart = array();
>// add item to cart that cast an array to object
>$a->cart[] = (object)[ "value" => "12.01", "item" => "banana" ];
>// add item to cat that is an undefined object
>$itemObj = new class{};
>$itemObj->value = "10.02";
>$itemObj->item = "apple";
>$a->cart[] = $itemObj;
>echo json_encode($a, JSON_PRETTY_PRINT);
>--- eof ---
>
>Only use array when you are to have a collection of items, for example a 
>shopping cart, but do not use array when you have a single item, then 
>better to use an object of some sort, for your example I would actually 
>create classes that describes the json, you will of course have nested 
>objects in the end.
>
>-- 

And in the case of recurring items when being puleld from 
a form getting parsed?

>  //Aho
>
>


-- 
Member - Liberal International This is [email protected] Ici [email protected]
Yahweh, King & country!Never Satan President Republic!Beware AntiChrist rising!
Look at Psalms 14 and 53 on Atheism https://www.empire.kred/ROOTNK?t=94a1f39b 
If their only strength is in enforcing weakness, then they will preside over ruin. -unknown Beware https://mindspring.com