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