Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

Basic is a high level languish. APL is a high level anguish.


devel / comp.lang.javascript / Re: Stripping [ ] from JSON arrays

SubjectAuthor
* Stripping [ ] from JSON arraysThe Doctor
+* Re: Stripping [ ] from JSON arraysJJ
|+- Re: Stripping [ ] from JSON arraysThe Doctor
|`* Re: Stripping [ ] from JSON arraysElhwen Dico
| `- Re: Stripping [ ] from JSON arraysThe Doctor
`- Re: Stripping [ ] from JSON arraysStefan Froehlich

1
Stripping [ ] from JSON arrays

<tpiebr$cso$64@gallifrey.nk.ca>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=18009&group=comp.lang.javascript#18009

  copy link   Newsgroups: comp.lang.php comp.lang.javascript
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.nk.ca!.POSTED.doctor.nl2k.ab.ca!not-for-mail
From: doctor@doctor.nl2k.ab.ca (The Doctor)
Newsgroups: comp.lang.php,comp.lang.javascript
Subject: Stripping [ ] from JSON arrays
Date: Tue, 10 Jan 2023 01:17:47 -0000 (UTC)
Organization: NetKnow News
Message-ID: <tpiebr$cso$64@gallifrey.nk.ca>
Injection-Date: Tue, 10 Jan 2023 01:17:47 -0000 (UTC)
Injection-Info: gallifrey.nk.ca; posting-host="doctor.nl2k.ab.ca:204.209.81.1";
logging-data="13208"; mail-complaints-to="usenet@gallifrey.nk.ca"
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: doctor@doctor.nl2k.ab.ca (The Doctor)
 by: The Doctor - Tue, 10 Jan 2023 01:17 UTC

This morning I got this from Moeris:

Here's an example working one:

{
"store_id":"store3",
"checkout_id":"chkt23NGFtore3",
"api_token":"yesguy",
"txn_total":"189.00",
"environment":"qa",
"action":"preload"
}

You repeated the same items section 3 times and your commas and braces are
incorrectly placed. Correct your preload, and let me know if you still get a
blank screen.

Follow the formatting shown here for the preload:
https://developer.moneris.com/sitecore/media%20library/Hidden/MCO/Preload%20Request?sc_lang=en

now given code processor

<?=session_start();
error_reporting(E_ALL);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Professional Development Solutions - Online Form</title>
<meta name="description" content="PD Solutions is an educational company that delivers on-line webinars and webcasts to various organizations or people" />
<meta name="robots" content="index, follow" />
<link rel="stylesheet" type="text/css" href="css/css.css"/>
<link rel="stylesheet" type="text/css" href="css/css2.css"/>
<link rel="stylesheet" href="css/uniform.default.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/uniform.agent.css" type="text/css" media="screen">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">

</head>
<body>
<?php
if(!empty($_SESSION['sessiondata'])){
}
?>
<div id="wrapper">
<!--header begins-->
<?php
include("includes/header.php");
?>
<!--header ends-->
<FORM ACTION="https://gatewayt.moneris.com/chktv2/request/request.php" method=post>
<?php
$myObj = [];
$cartarray= [];
$itemssubarray= [];
$storevalues= [];
$storevalues2= [];
$contact_details=[];
$shipping_details=[];
$billing_details=[];
$arr2 =array();
?>
<center>
<!-- Store Settings-->
<!------- DEFINE CHARGE TOTAL HERE --->
<br/><br/><h3>Your Purchase Total Is: </h3> <br/> <h2>$<?=$_POST['charge_total']?></h2>
<!-- Unique Order ID -->
<!-- Additional Optional Details -->
<!-- Item Information -->
<?php

$items_count = 1;
$subtotal = 0;
$subtotala = 0;
$arr = array();
if (isset($_POST["submit"])){
foreach ($_POST['quantity'] as $key => $value) {

if( $value > 0){

if(isset($_POST['with_gst'][$key])){
$unit_cost = 63.00;
}else{
$unit_cost = 60.00; //no gst included
}

$subtotal = ($unit_cost * $value);
$quantity = ($value);

$itemssubarray[] = array(
"items"=>array(
'url' => "https://www.pdsolutions.ca/images/procircle.png",
'description' => $_POST['description'][$key],
'product_code' => $_POST['id'][$key],
'unit_cost' => $unit_cost,
'quantity' => $quantity,
),
);
}
$subtotala += ($unit_cost * $value);
$items_count++;
} $cartarray[] = array ("cart"=>array($itemssubarray));

// array_push($cartarray,$itemssubasrray);
$cartarray[] = array(
'subtotal' => $subtotala,
"tax"=>array(
'amount' => ($subtotala * 0.05),
'description' => "GST",
'rate' => "0.05",
),
);
array_push($arr, $cartarray);
}

?>
<?php

if (isset($_POST["submit"])){
(array_push($storevalues,[
//'sessValue' => $_POST['sessionid1'],
'username'=> "demouser",
'password' => "password",
'store_id' => "store3",
'checkout_id' => "chkt23NGFtore3",
'api_token' => "yesguy",
'txn_total' => $_POST['charge_total'],
'environment' => "qa",
'action' => "preload",
]));

$contact_details[] = array(
"contact_details"=>array(
'first_name' =>$_POST['bill_first_name'],
'last_name' => $_POST['bill_last_name'],
'email' => $_POST['email'],
'phone' => $_POST['bill_phone'],
)
);
array_push($arr2, $contact_details);

$billing_details[] = array (
"billing_details"=>array(
'address_1' => $_POST['bill_address_one'],
'city' => $_POST['bill_city'],
'province' => $_POST['bill_state_or_province'],
'country' => "CA",
'postal_code' => $_POST['bill_postal_code'],

)
);

?>
<?php
$myObj = array_merge($storevalues,$cartarray,$contact_details,$billing_details);
//$storevalues2 = substr($storevalues,1,strlen($storevalues) -2);
//$myObj = $storevalues;
$myJSON = json_encode($myObj);
echo $myJSON;
}

?>
<div id="outerDiv" style="width:400px"; height"300px">`
<div id="monerisCheckout">
</div>

</div>
<script src="https://gatewayt.moneris.com/chktv2/js/chkt_v2.00.js" async></script>

<script>
var myCheckout = new monerisCheckout();
myCheckout.setMode("qa");
myCheckout.setCheckoutDiv("monerisCheckout");
monerisCheckout.startCheckout('<?php echo $token ?>');
var myPageLoad = function(data) {
console.log(data);
const obj = JSON.parse(data);
console.log(obj.ticket);
};
var myCancelTransaction = function(data) {
console.log(data);
const obj = JSON.parse(data);
console.log(obj.ticket);
};
var myErrorEvent = function(data) {
console.log(data);
const obj = JSON.parse(data);
console.log(obj.ticket);
};
var myPaymentReceipt = function(data) {
console.log(data);
const obj = JSON.parse(data);
console.log(obj.ticket);
};
var myPaymentComplete = function(data) {
console.log(data);
const obj = JSON.parse(data);
console.log(obj.ticket);
};
/**
* Set callbacks in JavaScript:
*/
myCheckout.setCallback("page_loaded",myPageLoad);
myCheckout.setCallback("cancel_transaction",myCancelTransaction);
myCheckout.setCallback("error_event", myErrorEvent);
myCheckout.setCallback("payment_receipt",myPaymentReceipt);
myCheckout.setCallback("payment_complete", myPaymentComplete);
</script>
<INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="Click to proceed to Secure Page">
</center>
</FORM>

<?php
include("includes/footer.php");
?>
</div>
</body>
</html>

This picks up data from a previous form.

Here is and example of what is generated:

[{"username":"demouser","password":"password","store_id":"store3","checkout_id":"chkt23NGFtore3","api_token":"yesguy","txn_total":"189.00","environment":"qa","action":"preload"},{"cart":[[{"items":{"url":"https:\/\/www.pdsolutions.ca\/images\/procircle.png","description":"Protecting Pollinators","product_code":"PP-1294","unit_cost":60,"quantity":"1"}},{"items":{"url":"https:\/\/www.pdsolutions.ca\/images\/procircle.png","description":"Agricultural Health Study","product_code":"AHS-1298","unit_cost":60,"quantity":"1"}},{"items":{"url":"https:\/\/www.pdsolutions.ca\/images\/procircle.png","description":"Pesticide Applicator Records","product_code":"PAR-1302","unit_cost":60,"quantity":"1"}}]]},{"subtotal":180,"tax":{"amount":9,"description":"GST","rate":"0.05"}},{"contact_details":{"first_name":"Dave","last_name":"Yadallee","email":"root@nk.ca","phone":"7804734587"}},{"billing_details":{"address_1":"","city":"","province":"","country":"CA","postal_code":""}}]


Click here to read the complete article
Re: Stripping [ ] from JSON arrays

<1rb3ua6kn88tn.objz7l6azwbd.dlg@40tude.net>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=18010&group=comp.lang.javascript#18010

  copy link   Newsgroups: comp.lang.php comp.lang.javascript
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: jj4public@outlook.com (JJ)
Newsgroups: comp.lang.php,comp.lang.javascript
Subject: Re: Stripping [ ] from JSON arrays
Date: Tue, 10 Jan 2023 11:29:13 +0700
Organization: A noiseless patient Spider
Lines: 7
Message-ID: <1rb3ua6kn88tn.objz7l6azwbd.dlg@40tude.net>
References: <tpiebr$cso$64@gallifrey.nk.ca>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Injection-Info: reader01.eternal-september.org; posting-host="f3cd85f9007bf7aeb8cd7f9698dba0f8";
logging-data="491181"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+gjqNIgVRWPz64fD8ddL6zeqibDzRn4Wg="
User-Agent: 40tude_Dialog/2.0.15.84
Cancel-Lock: sha1:dME46boY37sgFlbRCldrgrLfL8M=
X-Face: \*\`0(1j~VfYC>ebz[&O.]=,Nm\oRM{of,liRO#7Eqi4|!]!(Gs=Akgh{J)605>C9Air?pa d{sSZ09u+A7f<^paR"/NH_#<mE1S"hde\c6PZLUB[t/s5-+Iu5DSc?P0+4%,Hl
X-Bitcoin: 1LcqwCQBQmhcWfWsVEAeyLchkAY8ZfuMnS
 by: JJ - Tue, 10 Jan 2023 04:29 UTC

On Tue, 10 Jan 2023 01:17:47 -0000 (UTC), The Doctor wrote:
>
> How do I strip unnecessary [] ?

I'd use array's `reduce()` for that. e.g.

var resultObj = theArray.reduce((res, obj) => Object.assign(res, obj), {});

Re: Stripping [ ] from JSON arrays

<tpiv33$q3l$28@gallifrey.nk.ca>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=18011&group=comp.lang.javascript#18011

  copy link   Newsgroups: comp.lang.php comp.lang.javascript
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!news.ripco.com!news.nk.ca!.POSTED.doctor.nl2k.ab.ca!not-for-mail
From: doctor@doctor.nl2k.ab.ca (The Doctor)
Newsgroups: comp.lang.php,comp.lang.javascript
Subject: Re: Stripping [ ] from JSON arrays
Date: Tue, 10 Jan 2023 06:03:15 -0000 (UTC)
Organization: NetKnow News
Message-ID: <tpiv33$q3l$28@gallifrey.nk.ca>
References: <tpiebr$cso$64@gallifrey.nk.ca> <1rb3ua6kn88tn.objz7l6azwbd.dlg@40tude.net>
Injection-Date: Tue, 10 Jan 2023 06:03:15 -0000 (UTC)
Injection-Info: gallifrey.nk.ca; posting-host="doctor.nl2k.ab.ca:204.209.81.1";
logging-data="26741"; mail-complaints-to="usenet@gallifrey.nk.ca"
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: doctor@doctor.nl2k.ab.ca (The Doctor)
 by: The Doctor - Tue, 10 Jan 2023 06:03 UTC

In article <1rb3ua6kn88tn.objz7l6azwbd.dlg@40tude.net>,
JJ <jj4public@outlook.com> wrote:
>On Tue, 10 Jan 2023 01:17:47 -0000 (UTC), The Doctor wrote:
>>
>> How do I strip unnecessary [] ?
>
>I'd use array's `reduce()` for that. e.g.
>
>var resultObj = theArray.reduce((res, obj) => Object.assign(res, obj), {});

Will try!
--
Member - Liberal International This is doctor@nk.ca Ici doctor@nk.ca
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
Birthdate: 29 Jan 1969 Redhill, Surrey, England Beware https://mindspring.com

Re: Stripping [ ] from JSON arrays

<1t63bd197bi3c78e5n3e8%sfroehli@Froehlich.Priv.at>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=18012&group=comp.lang.javascript#18012

  copy link   Newsgroups: comp.lang.php comp.lang.javascript
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich)
Newsgroups: comp.lang.php,comp.lang.javascript
Subject: Re: Stripping [ ] from JSON arrays
Date: 10 Jan 2023 08:10:09 GMT
Lines: 79
Message-ID: <1t63bd197bi3c78e5n3e8%sfroehli@Froehlich.Priv.at>
References: <tpiebr$cso$64@gallifrey.nk.ca>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: individual.net rvHaGcuhRGtvJ4fHAA4HnAiCJ5jpPGDD0g788VS/Zn8MIAxMs=
X-Orig-Path: not-for-mail
Cancel-Lock: sha1:pzyNmJ5Ws0FCkY9P+Jgq8hi44Yw=
X-Blattlinie: dieser Artikel repraesentiert meine persoenliche Meinung
X-Medieninhaber: Stefan Froehlich
X-Verleger: Stefan Froehlich
X-Verlagsort: Wien
User-Agent: tin/2.4.5-20201224 ("Glen Albyn") (Linux/5.10.0-13-amd64 (x86_64))
 by: Stefan Froehlich - Tue, 10 Jan 2023 08:10 UTC

In comp.lang.php The Doctor <doctor@doctor.nl2k.ab.ca> wrote:
> $contact_details=[];
[...]
> $contact_details[] = array(
> "contact_details"=>array(
> 'first_name' =>$_POST['bill_first_name'],
> 'last_name' => $_POST['bill_last_name'],
> 'email' => $_POST['email'],
> 'phone' => $_POST['bill_phone'],
> )
> );
[...]
> $myObj = array_merge($storevalues,$cartarray,$contact_details,$billing_details);
> $myJSON = json_encode($myObj);

> Here is and example of what is generated:
> [{"username":"demouser","password":"password","store_id":"store3","checkout_id":"chkt23NGFtore3","api_token":"yesguy","txn_total":"189.00","environment":"qa","action":"preload"},{"cart":[[{"items":{"url":"https:\/\/www.pdsolutions.ca\/images\/procircle.png","description":"Protecting Pollinators","product_code":"PP-1294","unit_cost":60,"quantity":"1"}},{"items":{"url":"https:\/\/www.pdsolutions.ca\/images\/procircle.png","description":"Agricultural Health Study","product_code":"AHS-1298","unit_cost":60,"quantity":"1"}},{"items":{"url":"https:\/\/www.pdsolutions.ca\/images\/procircle.png","description":"Pesticide Applicator Records","product_code":"PAR-1302","unit_cost":60,"quantity":"1"}}]]},{"subtotal":180,"tax":{"amount":9,"description":"GST","rate":"0.05"}},{"contact_details":{"first_name":"Dave","last_name":"Yadallee","email":"root@nk.ca","phone":"7804734587"}},{"billing_details":{"address_1":"","city":"","province":"","country":"CA","postal_code":""}}]
> And here is what is being looked for
>
> {
> "store_id":"moneris",
> [...]
> }

> How do I strip unnecessary [] ?

First of all, you should strip unnecessary information from your
postings - in your case the content of $myObj and the output are the
only necessary information.

#v+
$a = array();
$b = array();
$a[] = ['contact_details' => ['y' => 'z']];
$b[] = ['billing_details' => ['y' => 'z']];
$c = array_merge($a, $b);
var_dump(json_encode($c));
#v-

string(59) "[{"contact_details":{"y":"z"}},{"billing_details":{"y":"z"}}]"

#v+
$a = ['contact_details' => ['y' => 'z']];
$b = ['billing_details' => ['y' => 'z']];
$c = array_merge($a, $b);
var_dump(json_encode($c));
#v-

string(55) "{"contact_details":{"y":"z"},"billing_details":{"y":"z"}}"

So there is no need to use reduce() or anything else. You are simply
using one (non-associative) level of arrays too much. This would be
easier to debug if you add a print_r($myObj); to your debugging
output.

Personally I'd prefer another version without the irritating
array_merge for better readability, but this is just a matter of
taste producing the same array and the same output:

#v+
$a = ['y' => 'z'];
$b = ['y' => 'z'];
$c = ['contact_details' => $a, 'billing_details' => $b];
var_dump(json_encode($c));
#v-

Bye,
Stefan

--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Stefan: die süße Verführung!
(Sloganizer)

Re: Stripping [ ] from JSON arrays

<63bedf36$0$3100$426a34cc@news.free.fr>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=18013&group=comp.lang.javascript#18013

  copy link   Newsgroups: comp.lang.php comp.lang.javascript
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!cleanfeed2-b.proxad.net!nnrp2-1.free.fr!not-for-mail
Date: Wed, 11 Jan 2023 17:09:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.6.1
Subject: Re: Stripping [ ] from JSON arrays
Content-Language: fr
Newsgroups: comp.lang.php,comp.lang.javascript
References: <tpiebr$cso$64@gallifrey.nk.ca>
<1rb3ua6kn88tn.objz7l6azwbd.dlg@40tude.net>
From: elhwen.dicote@gmail.com (Elhwen Dico)
In-Reply-To: <1rb3ua6kn88tn.objz7l6azwbd.dlg@40tude.net>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 21
Message-ID: <63bedf36$0$3100$426a34cc@news.free.fr>
Organization: Guest of ProXad - France
NNTP-Posting-Date: 11 Jan 2023 17:09:26 CET
NNTP-Posting-Host: 91.169.85.6
X-Trace: 1673453366 news-4.free.fr 3100 91.169.85.6:57128
X-Complaints-To: abuse@proxad.net
 by: Elhwen Dico - Wed, 11 Jan 2023 16:09 UTC

Le 10/01/2023 à 05:29, JJ a écrit :
> On Tue, 10 Jan 2023 01:17:47 -0000 (UTC), The Doctor wrote:
>>
>> How do I strip unnecessary [] ?
>
> I'd use array's `reduce()` for that. e.g.
>
> var resultObj = theArray.reduce((res, obj) => Object.assign(res, obj), {});

const array = [
[0, 1, 2], [], ["tutu"], undefined
];

const result = array.filter(
(tab) => (tab && tab.length));

console.log(result);

-> [ [ 0, 1, 2 ], [ 'tutu' ] ]

you could improve filter callback to check that array members are arrays.

Re: Stripping [ ] from JSON arrays

<tpmngk$12k$94@gallifrey.nk.ca>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=18014&group=comp.lang.javascript#18014

  copy link   Newsgroups: comp.lang.php comp.lang.javascript
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.nk.ca!.POSTED.doctor.nl2k.ab.ca!not-for-mail
From: doctor@doctor.nl2k.ab.ca (The Doctor)
Newsgroups: comp.lang.php,comp.lang.javascript
Subject: Re: Stripping [ ] from JSON arrays
Date: Wed, 11 Jan 2023 16:18:28 -0000 (UTC)
Organization: NetKnow News
Message-ID: <tpmngk$12k$94@gallifrey.nk.ca>
References: <tpiebr$cso$64@gallifrey.nk.ca> <1rb3ua6kn88tn.objz7l6azwbd.dlg@40tude.net> <63bedf36$0$3100$426a34cc@news.free.fr>
Injection-Date: Wed, 11 Jan 2023 16:18:28 -0000 (UTC)
Injection-Info: gallifrey.nk.ca; posting-host="doctor.nl2k.ab.ca:204.209.81.1";
logging-data="1108"; mail-complaints-to="usenet@gallifrey.nk.ca"
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: doctor@doctor.nl2k.ab.ca (The Doctor)
 by: The Doctor - Wed, 11 Jan 2023 16:18 UTC

In article <63bedf36$0$3100$426a34cc@news.free.fr>,
Elhwen Dico <elhwen.dicote@gmail.com> wrote:
>Le 10/01/2023 à 05:29, JJ a écrit :
>> On Tue, 10 Jan 2023 01:17:47 -0000 (UTC), The Doctor wrote:
>>>
>>> How do I strip unnecessary [] ?
>>
>> I'd use array's `reduce()` for that. e.g.
>>
>> var resultObj = theArray.reduce((res, obj) => Object.assign(res, obj), {});
>
> const array = [
> [0, 1, 2], [], ["tutu"], undefined
> ];
>
> const result = array.filter(
> (tab) => (tab && tab.length));
>
> console.log(result);
>
>-> [ [ 0, 1, 2 ], [ 'tutu' ] ]
>
> you could improve filter callback to check that array members are arrays.

giving an update, I finally found someone at Moneris to work with.

I hate bad doumentation.
--
Member - Liberal International This is doctor@nk.ca Ici doctor@nk.ca
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
Birthdate: 29 Jan 1969 Redhill, Surrey, England Beware https://mindspring.com

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor