我的php文件中有数组:
$invoices_arr = [];
foreach ($invoices as $key=>$invoice){
$invoices_arr[$key]['id']=$invoice->get_id();
$invoices_arr[$key]['code_text']=$invoice->get_code_text();
$invoices_arr[$key]['invoice_name']=$invoice->get_invoice_name();
$invoices_arr[$key]['status_invoice']=$invoice->get_status_invoice();
$invoices_arr[$key]['attachments']=$invoice->get_attachments();
}
echo json_encode(['invoices'=>$invoices_arr]);
我的ajax电话:
$.ajax({
data:{lead_id:$("#lead_id").val()},
url: sJSUrlGetAllLeadInvoices,
success: function (data) {
var obj = jQuery.parseJSON(data);
$("#all_invoice_table tbody").empty();
$(obj.invoices).each(function(key,value){
$('#all_invoice_table').append('<tr><td>'+value.invoice_name+'</td><td class="invoice_status">'+value.status_invoice+'<td>attt</td><td><button id="'+value.id+'" class="edit_invoice_'+value.id+'">Edit invoice</button</td><td><button class="send_invoice_btn_'+value.id+'">Send invoice</button></td><td><img class="delete_invoice_'+value.id+'" src="/images/icons/delete.gif"></td><td class="invoice_hidden_column_'+value.id+'">'+value.code_text+'</td></tr>');
});
}
});
在字段value.attachments
中有php serialize数组,例如,string&#34; a:1:{i:0; s:36:&#34; ../../ pdf_invoices / 2017 -10-10015.pdf&#34 ;;}&#34; 。
如何在js中将此字符串转换为数组?
我尝试这样做:
var mas=JSON.parse(value.attachments);
但是我收到错误 SyntaxError:JSON.parse:JSON数据第1行第1列的意外字符
我该如何解决?谢谢你的帮助。
答案 0 :(得分:0)
也许你应该在json
中编码之前在PHP代码中反序列化答案 1 :(得分:0)
您不需要使用jQuery.parseJSON解析结果,因为jQuery是这样做的。如果使用console.log()检查数据,您将看到这是一个可供使用的Javascript对象。
答案 2 :(得分:0)
您需要将数据类型作为json传递。 你可以使用jQuery parse方法来解析json响应。
数据类型:JSON