Javascript 从 xmlhttpresponse 解析响应文本

标签 javascript json parsing

我在 xmlhttpresponse 中返回了以下文本,我需要通过管道分隔符来解析它。它应该返回一个数组,其中位置 0 是 Block1,位置 1 是节点名 json 数据,位置 2 是用户 ID 数据。

({"body": "Block1|[{\"nodeName\":\"DIV\",\"nodeIndex\":20,\"x_offset\":131,\"y_offset\":47}]|33|7|33|[{\"UserID\":\"d8b4e408-b013-417c08aaa-7cd3658f4160_05_01_2015_21_32_46_000\",\"os\":\"Windows\",\"browser_width\":1366,\"Count\":16}}]"})

我已经尝试过这个,但目前正在尝试找出解决方案,但我的大脑出现了故障。

function outputResult() {
        var response = invocation.responseText;
        var textDiv = document.getElementById("textDiv");
        textDiv.innerHTML += response;

        var arr = response.body.split("|");
        console.log(arr[0])
    }

最佳答案

用“|”分割字符串后需要解析JSON数据字符,如 for 循环中的代码:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <h1>result</h1>
    <div id="textDiv"></div>
    <script>
        function outputResult() {
            var response = ({"body": "Block1|[{\"nodeName\":\"DIV\",\"nodeIndex\":20,\"x_offset\":131,\"y_offset\":47}]|33|7|33|[{\"UserID\":\"d8b4e408-b013-417c08aaa-7cd3658f4160_05_01_2015_21_32_46_000\",\"os\":\"Windows\",\"browser_width\":1366,\"Count\":16}]"});
            var textDiv = document.getElementById("textDiv");
            textDiv.innerHTML += response;

            var arr = response.body.split("|");
            for(var i in arr){
                if(arr[i].indexOf('[') === 0)
                arr[i] = JSON.parse(arr[i]);
            }
            console.log(arr);
        }
        outputResult();
    </script>
</body>
</html>

但是,textDiv.innerHTML += response; 不会按照您的预期显示响应文本。相反,它将呈现为 [object Object] ,因此您必须手动设置要显示的格式。

关于Javascript 从 xmlhttpresponse 解析响应文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30002982/

相关文章:

parsing - 通用解析错误

c# 无法解析 xml,收到错误 463

javascript - 垂直和水平对齐 Angular Material

javascript - 我如何使用 jQuery 按自定义列对表进行排序

javascript - D3.js 错误绘制geojson

javascript - 根据 json 数据显示警报

javascript - Json - 检查子节点空值

java - 从数据库获取对象时,java.lang.String类型的值连接无法转换为JSONObject

java - 转换结果 java.lang.NullPointerException 时出错 & 解析数据 org.json.JSONException 时出错 : End of input at character 0 of

java - 如何使用 Java 中的 2 个 JtextField 将英里转换为公里,反之亦然?