Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在多部分ajax调用后解析JSON主体_Javascript_Angularjs_Json_Multipartform Data_Multipart - Fatal编程技术网

Javascript 在多部分ajax调用后解析JSON主体

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

我正在尝试解析一个在使用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-- 我没有找到从这个请求中获取正文的插件。我是否需要制作手动解析器,或者我可以得到另一个解决方案。
有人能帮我吗

您可以在每个参数处使用
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”…}用定制的解析器修复了所有问题。我将在下面发布所有内容。