Javascript 在多部分ajax调用后解析JSON主体
我正在尝试解析一个在使用ajax angularJs调用api后出现的主体。 呼叫后,响应为: --3531b7e68196e3144197f82db0864b7e391c8b0ad51c4176c28f8ac41b3c Content-Disposition: form-data; name="passport"; filename="passport.json" Content-Type: application/json { "name": "Nothing", "dob_display": "10/11/1997", "dob_accuracy": "FD", "owner_firstname": "Nothing", "owner_surname": "To Understand" } --3531b7e68196e3144197f82db0864b7e391c8b0ad51c4176c28f8ac41b3c-- --3531b7e68196e3144197f82db0864b7e391c8b0ad51c4176c28f8ac41b3c 内容配置:表单数据;name=“passport”;filename=“passport.json” 内容类型:application/json { “名称”:“没有”, “dob_显示器”:“1997年11月10日”, “dob_精度”:“FD”, “所有者姓名”:“什么都没有”, “所有者姓氏”:“理解” } --3531b7e68196e3144197f82db0864b7e391c8b0ad51c4176c28f8ac41b3c-- 我没有找到从这个请求中获取正文的插件。我是否需要制作手动解析器,或者我可以得到另一个解决方案。Javascript 在多部分ajax调用后解析JSON主体,javascript,angularjs,json,multipartform-data,multipart,Javascript,Angularjs,Json,Multipartform Data,Multipart,我正在尝试解析一个在使用ajax angularJs调用api后出现的主体。 呼叫后,响应为: --3531b7e68196e3144197f82db0864b7e391c8b0ad51c4176c28f8ac41b3c Content-Disposition: form-data; name="passport"; filename="passport.json" Content-Type: application/json { "name": "Nothing", "dob
有人能帮我吗 您可以在每个参数处使用
String.prototype.slice()
和String.prototype.indexOf()
来获取“{
,“}”
,JSON.parse()
的索引
let response=`--3531b7e68196e3144197f82db0864b7e391c8b0ad51c4176c28f8ac41b3c
内容配置:表单数据;name=“passport”;filename=“passport.json”
内容类型:application/json
{
“名称”:“没有”,
“dob_显示器”:“1997年11月10日”,
“dob_精度”:“FD”,
“所有者姓名”:“什么都没有”,
“所有者姓氏”:“理解”
}
--3531b7e68196e3144197f82db0864b7e391c8b0ad51c4176c28f8ac41b3c--`;
让json=json.parse(response.slice(response.indexOf(“{”)
,response.indexOf(“}”)+1);
让{name}=json;
log(json);
log({name});
console.log(名称)代码>这是我解析API调用后出现的任何表单数据的解决方案:
parser = function (data) {
// this will split --1491test9246asaery134214
// if you have multiple files in the response
var dataArray = data.split(/--\S*[0-9a-z]/g), response = {};
underscore.each(dataArray, function (dataBlock) {
var rows = dataBlock.split('\n'),
header = rows.splice(0, 4).slice(1, 3),
body = rows.join('');
if (header.length > 1) {
var patternGetName = /(".*?")/g,
name = patternGetName.exec(header[0])[0].replace(/(")/g, '');
response[name] = body;
}
});
return response;
};
预期的结果是什么?请看我的预期结果是json{“name”:“Nothing”,“dob_display”:“10/11/1997”,“dob_accurity”:“FD”,“owner_firstname”:“Nothing”,“owner_姓氏”:“To Understand”},然后像angular中的对象一样进行访问。不确定您是如何接收原始FormData
作为字符串的?你能把javascript
包含在返回字符串的问题中吗?我正在使用ajax.post调用服务器,响应就像我写的一样:就是这样:(我需要来自该响应的对象。{“name”:“Nothing”…}用定制的解析器修复了所有问题。我将在下面发布所有内容。