簡體   English   中英

解析ajax響應對象數據

[英]Parse ajax response object data

我正在使用jQuery $.post方法傳遞對象。 使用$.get方法加載該對象時,我需要正確解析該對象的消息字段。 我可以刪除等號“ =”和“&”,但是如果它是一條長消息,它將包含加號“ +”,並且逗號無法正確顯示。 這是我得到的控制台輸出:

{user: "demo", message: "Lorem+ipsum+dolor+sit+amet%2C+consectetur+adipisci…+qui+officia+deserunt+mollit+anim+id+est+laborum."}
message: "Lorem+ipsum+dolor+sit+amet%2C+consectetur+adipiscing+elit%2C+sed+do+eiusmod+tempor+incididunt+ut+labore+et+dolore+magna+aliqua.+Ut+enim+ad+minim+veniam%2C+quis+nostrud+exercitation+ullamco+laboris+nisi+ut+aliquip+ex+ea+commodo+consequat.+Duis+aute+irure+dolor+in+reprehenderit+in+voluptate+velit+esse+cillum+dolore+eu+fugiat+nulla+pariatur.+Excepteur+sint+occaecat+cupidatat+non+proident%2C+sunt+in+culpa+qui+officia+deserunt+mollit+anim+id+est+laborum."
user: "demo"
__proto__: Object

逗號由%2C字符替換,空格從加號替換。 如何獲得沒有此標志的文本?

這是我為此范圍編寫的一個函數,但根本無法正常工作。

function parseData(data){
 var params = {}
 params.data = data.split("&");
 params.result = {};
  for(var i = 0; i < params.data.length; i++) {
   var item = params.data[i].split("=");
   params.result[item[0]] = item[1];
  }
 return params.result;
}

使用這個:

function parseData(data){
   return decodeURIComponent((data + '').replace(/\+/g, '%20'));
}

使用此功能希望它對您有用:

export function parseData(data) {
    url = decodeURI(url);
    if (typeof url === 'string') {
        let params = url.split('?');
        let eachParamsArr = params[1].split('&');
        let obj = {};
        if (eachParamsArr && eachParamsArr.length) {
            eachParamsArr.map(param => {
                let keyValuePair = param.split('=')
                let key = keyValuePair[0];
                let value = keyValuePair[1];
                obj[key] = value;
            })
        }
        return obj;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM