Re: Stripping a JSON of extra characters in PHP
Arno Welzel <[email protected]> Fri, 3 Feb 2023 18:12:15 +0100
| Newsgroups | comp.lang.php |
|---|---|
| Message-ID | <[email protected]> |
Ben Bacarisse, 2023-02-01 17:09: > [email protected] (The Doctor) writes: > >> From https://developer.moneris.com/livedemo/checkout/preload_req/guide/dotnet >> >> I need a JSON as follows: >> >> { >> "store_id":"moneris", >> "api_token":"hurgle", > > What you pasted as what you "need" is not even valid JSON and has a huge > number of pointless spaces in it making it almost unreadable (in my news > client). First of all - to all of you: learn how to use validators and beautifiers. It helps a lot to understand the structure and differences between multiple JSON files. In the original sample was only one single comma missing. Otherwise it is ok: { "store_id":"moneris", "api_token":"hurgle", "checkout_id":"chkt5BF66neris", "txn_total":"452.00", "environment":"qa", "action":"preload", "token":[ { "data_key":"abc123datakey1", "issuer_id":"645sddfvdrt4tefd" }, { "data_key":"abc123datakey2", "issuer_id":"645sddfvdrt4tefd" }, { "data_key":"abc123datakey3", "issuer_id":"645sddfvdrt4tefd" } ], "ask_cvv":"Y", "order_no":"", "cust_id":"chkt - cust - 0303", "dynamic_descriptor":"dyndesc", "language":"en", "recur":{ "bill_now":"true", "recur_amount":"1.00", "start_date":"2021-11-21", "recur_unit":"month", "recur_period":"1", "number_of_recurs":"10" }, "cart":{ "items":[ { "url":"https:\/\/example.com\/examples\/item1.jpg", "description":"One item", "product_code":"one_item", "unit_cost":"100.00", "quantity":"1" }, { "url":"https:\/\/example.com\/examples\/item2.jpg", "description":"Two item", "product_code":"two_item", "unit_cost":"200.00", "quantity":"1" }, { "url":"https:\/\/example.com\/examples\/item3.jpg", "description":"Three item", "product_code":"three_item", "unit_cost":"100.00", "quantity":"1" } ], "subtotal":"400.00", "tax":{ "amount":"52.00", "description":"Taxes", "rate":"13.00" } }, "contact_details":{ "first_name":"bill", "last_name":"smith", "email":"[email protected]", "phone":"4165551234" }, "shipping_details":{ "address_1":"1 main st", "address_2":"Unit 2012", "city":"Toronto", "province":"ON", "country":"CA", "postal_code":"M1M1M1" }, "billing_details":{ "address_1":"1 main st", "address_2":"Unit 2000", "city":"Toronto", "province":"ON", "country":"CA", "postal_code":"M1M1M1" } } >> But in testng I am getting >> >> [{"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? > > But that one is (a) valid and (b) has no unnecessary punctuation, so I > don't know what it is you mean. The structure is completely different and not just with "unnecessary punctuation" - there is no simple way to "strip" anything, it has to be completely parsed and output again in the desired way: [ { "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":"" } } ] ] -- Arno Welzel https://arnowelzel.de