この時点で、オブジェクトとは何か、配列とは何か、JSON とは何かについて少し混乱しています。誰かが2つの構文の違いを説明できますか? それぞれにアイテムを追加する方法、各タイプをマージする方法などは? この関数を取得して、JSON オブジェクト (私は思う) から新しい情報を取得し、それをいくつかの新しい情報とマージしようとしています。この情報は、PHP スクリプトに渡されて処理されます。
コンソール出力は次のとおりです。
{"public":{"0":["el29t7","3bmGDy"]}}
{"public":"[object Object][object Object]"}
私が使用しているJSは次のとおりです。
/* Helper function to clean up any current data we have stored */
function insertSerializedData(ids, type) {
// Get anything in the current field
current_data = $('#changes').val();
if (!current_data) {
var data = {};
data[index++] = ids;
var final_data = {};
final_data[type] = data;
$('#changes').val(JSON.stringify(final_data));
} else {
current_data = JSON.parse(current_data);
var data = {};
data[index++] = ids;
// Does the index exist?
if (type in current_data) {
var temp_data = current_data[type];
current_data[type] = temp_data + data;
} else {
current_data[type] = data;
}
//var extra_data = {};
//extra_data[type] = data;
//$.merge(current_data, extra_data);
$('#changes').val(JSON.stringify(current_data));
}
console.log($('#changes').val());
}
アイデアは、キー(公開、またはその他のもの)がまだ存在しない場合、配列の配列を指すようにすることです。ただし、存在する場合は、配列の配列のものを新しい配列とマージする必要があります。例えば:
私が持っている場合
{"public":{"0":["el29t7","3bmGDy"]}}
そしてそれをマージしたい
["aj19vA", "jO71Ba"]
最終結果は次のようになります。
{"public":{"0":["el29t7","3bmGDy"], "1":["aj19vA", "jO71Ba"]}}
どうすればこれを行うことができますか?ありがとう