-1

[DUPICATE]

This My POST JSON Code

var data_create = JSON.stringify($("#form_create_delegate").serializeArray());

        alert("isi data_create" + data_create);

//        console.log(data_create)
        $.ajax({
            type: "POST",
            url: "formCreateDelegationServlet",
            dataType: "json",
            data:data:{JSONFile:data_create},
            success: function (response) {  }


        });

THIS MY Result JSON

JSONFile:[{"name":"id_form_delegate","value":"1"},{"name":"merchant","value":"AMBHARA HOTEL TERBAIK"},{"name":"citty","value":"JAKARTA PUSAT"},{"name":"addrs","value":"JL. DIPONEGORO NO.  1J"},{"name":"province_merchant","value":"DKI JAKARTA"},{"name":"mid_merchant[]","value":"1"},{"name":"tid_merchant[]","value":"1"},{"name":"mid_merchant[]","value":"2"},{"name":"tid_merchant[]","value":"2"}]

How to remove property "name" and "value" from my JsonArray

I want to make a format like this

[{"merchant":"AMBHARA HOTEL TERBAIK","citty":"JAKARTA PUSAT"}]

this my servlet code

JSONArray jsonArray = (JSONArray) net.sf.json.JSONSerializer.toJSON(request.getParameter("JSONFile"));

            merchant = jsonObject.getString("merchant");
            city = jsonObject.getString("city");
            addrs = jsonObject.getString("addrs");
            province_merchant = jsonObject.getString("province_merchant");
            tid = jsonObject.getString("tid_merchant");
            mid = jsonObject.getString("tid_merchant");
//            
            System.out.println("nama_merchant: " + nama_merchant);
            System.out.println("kota_merchant: " + kota_merchant);
            System.out.println("alamat_merchant: " + alamat_merchant);
            System.out.println("province_merchant: " + province_merchant);
            System.out.println("mid: " + mid);
            System.out.println("tid: " + tid);

But it doesn't work

newbiecihuy
  • 135
  • 1
  • 3
  • 12

1 Answers1

1

If you want to get rid of keys and just keep values as arrays, you can use Array.map like this

var input=[{"name":"id_form_delegate","value":"1"},{"name":"merchant","value":"AMBHARA HOTEL TERBAIK"},{"name":"citty","value":"JAKARTA PUSAT"},{"name":"addrs","value":"JL. DIPONEGORO NO.  1J"},{"name":"province_merchant","value":"DKI JAKARTA"},{"name":"mid_merchant[]","value":"1"},{"name":"tid_merchant[]","value":"1"},{"name":"mid_merchant[]","value":"2"},{"name":"tid_merchant[]","value":"2"}]

var result = input.map(function (obj) {return [obj.name, obj.value]})

console.log(JSON.stringify(result))

You can make it dynamic, so that it just works with any property and not only "name" and "value", using Object.keys (not supported in MSIE pre 9). But beware that you lose control on the order of values in output.

input=[{"name":"id_form_delegate","value":"1"},{"name":"merchant","value":"AMBHARA HOTEL TERBAIK"},{"name":"citty","value":"JAKARTA PUSAT"},{"name":"addrs","value":"JL. DIPONEGORO NO.  1J"},{"name":"province_merchant","value":"DKI JAKARTA"},{"name":"mid_merchant[]","value":"1"},{"name":"tid_merchant[]","value":"1"},{"name":"mid_merchant[]","value":"2"},{"name":"tid_merchant[]","value":"2"}]

result = input.map(function (obj) {
  return Object.keys(obj).map(function (key) {return obj[key]})
})

console.log(JSON.stringify(result))
edc65
  • 462
  • 7
  • 19