js で取得した配列をバックエンドに直接渡すと、js 配列が 2 次元の場合次のようになるため、バックエンドは配列を区別できません。 : 1、チャン・サン、23、2、ジョン・ドゥ、26
それでは解決策をご紹介します。皆様のお役に立てれば幸いです
まず、配列を js で json 形式に変換する必要があります
js コードは次のとおりです:
/**
*js 配列を 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*/[ネイティブ コード/]/n?/s*/}/n?/s*$/.test(o.toString)) {
r.push("toString:" o .toString.toString());
}
r = "{" r.join() "}";
} else {
for (var i = 0; i r.push(arrayToJson(o[i]));
}
r = "[" r.join() "]"; r;
}
return o.toString();
}
次に、文字列を Java のバックグラウンド js
で json に変換します。
com.alibaba.fastjson.JSONArray mainArray= JSON.parseArray (info.getMainparame());
log.debug("配列サイズ:" mainArray.size());
for(int i=0;i< mainArray.size();i ) {
QybjProduceParam p=new QybjProduceParam(); 1) .toString());
p.setParamevalue(paramObject.get(2).toString() );
パラメータ。 add(p);
}
info.setParams(params );
Java コードから、2 回変換されたことがわかります。毎回 JSONArray オブジェクトに変換されます。
1 次元配列の場合、変換されるのは 1 回だけです。