2017-01-09 76 views
-1

[DUPICATE]如何通过JSON数组与Servlet

这我POST JSON代码

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) { } 


     }); 

这是我的结果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"}] 

如何删除属性 “名” 和“价值”从我的JsonArray

我想制作一个这样的格式

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

这是我的servlet代码

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); 

但它不如果你想摆脱键,只是保留值数组,你可以使用阵列工作

+3

,如果你删除这两个,你会得到空的对象。 –

+1

你是什么意思删除?如果你从对象中删除这些属性,将不会有任何问题 –

+0

你的问题并不清楚。也许你想要一个像这样的数组的数组''[[“id_form_delegate”,“1”],[“merchant”,“”AMBHARA HOTEL TERBAIK“]] ...? – edc65

回答

1

。像这样的地图

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))

您可以使其成为动态的,以便它可以使用任何属性,而不仅仅是“名称”和“值”,使用Object.keys(MSIE pre 9中不支持)。但要小心,你失去了对输出值的顺序的控制。

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))

+0

使之动态 –

+0

@AdamAzad这不是什么OP在问,但这是一个有趣的任务 – edc65