Convert the js array to json and parse it in the background

Source: Internet
Author: User

We must have encountered similar problems during the development process. If we directly pass the array obtained by js to the backend, the backend cannot differentiate the array, because if the js array is two-dimensional, it is like this: 1, zhang San, Li Si, 26

So here we will sort out the solution. Hope to help you

First, convert the array to json format in js.

The js Code is as follows:

[Javascript]
/**
* Convert js array to json
*
*/
Function arrayToJson (o ){
Var r = [];
If (typeof o = "string") return "\" "+ o. replace (/([\ '\ "\])/g," \ $1 "). replace (/(\ n)/g, "\ n "). replace (/(\ r)/g, "\ r "). replace (/(\ t)/g, "\ t") + "\"";
If (typeof o = "object "){
If (! O. sort ){
For (var I in o)
R. push (I + ":" + arrayToJson (o [I]);
If (!! Document. all &&! /^ \ N? Function \ s * toString \ (\) \ s * \ {\ n? \ S * \ [native code \] \ n? \ S * \} \ n? \ S * $/. test (o. toString )){
R. push ("toString:" + o. toString. toString ());
}
R = "{" + r. join () + "}";
} Else {
For (var I = 0; I <o. length; I ++ ){
R. push (arrayToJson (o [I]);
}
R = "[" + r. join () + "]";
}
Return r;
}
Return o. toString ();
}

Then, the string is converted to json in java background js.

 

[Java]
Com. alibaba. fastjson. JSONArray mainArray = JSON. parseArray (info. getMainparame ());
Log. debug ("array size:" + mainArray. size ());
For (int I = 0; I <mainArray. size (); I ++ ){
QybjProduceParam p = new QybjProduceParam ();
Com. alibaba. fastjson. JSONArray paramObject = (com. alibaba. fastjson. JSONArray) mainArray. get (I );
P. setParamename (paramObject. get (1). toString ());
P. setParamevalue (paramObject. get (2). toString ());

Params. add (p );
}
Info. setParams (params );

It is not hard to see from the java code that it is converted twice. Every time it is converted into a JSONArray object.

If it is a one-dimensional array, it is converted only once.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.