Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.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 在StreamDeckSDK中正确解析新行上的Json数组_Javascript_Arrays_Json_Streamdeck - Fatal编程技术网

Javascript 在StreamDeckSDK中正确解析新行上的Json数组

Javascript 在StreamDeckSDK中正确解析新行上的Json数组,javascript,arrays,json,streamdeck,Javascript,Arrays,Json,Streamdeck,我试图获取一个JSON数组并显示完整的输出,但是格式很好。(请参阅注释部分)不幸的是,JSON数组返回对象,然后返回其输出。因此,我将字符串化以修复我得到的[Object,Object]错误。但现在一切都在一条线上。如何迭代数组并将它们放在新行上 我遇到的第二个问题是,我无法执行您在未注释部分中注意到的3个相同的函数。我想获取每个结果,并在它们之间添加一行新行 function setTitleStatus(context, settings) { $SD.api.setT

我试图获取一个JSON数组并显示完整的输出,但是格式很好。(请参阅注释部分)不幸的是,JSON数组返回对象,然后返回其输出。因此,我将字符串化以修复我得到的[Object,Object]错误。但现在一切都在一条线上。如何迭代数组并将它们放在新行上

我遇到的第二个问题是,我无法执行您在未注释部分中注意到的3个相同的函数。我想获取每个
结果
,并在它们之间添加一行新行

   function setTitleStatus(context, settings) {
        $SD.api.setTitle(context, "Updating...");
        getResults(result => resultCallback(result, context));
    }

    function resultCallback(result, context) {
        if (!result.hasOwnProperty("Object")) {
           $SD.api.setTitle(context, JSON.stringify(result));
           console.log(JSON.stringify(result, '%c%s'));
           return;
        }
        // This is where I'd like all 3 objects to be split on new lines.
        // $SD.api.setTitle(context, result.Platform.replace(new RegExp(' ', 'g'), '\n') +
        //     "\n" + result.Platform + " ")
        // $SD.api.setTitle(context, result.PU.replace(new RegExp(' ', 'g'), '\n') +
        //     "\n" + result.PU + " ")
        // $SD.api.setTitle(context, result.EA.replace(new RegExp(' ', 'g'), '\n') +
        //     "\n" + result.EA + " ")
    }

    function getResults(updateTitleFn) {
        let endPoint = "https://status.robertsspaceindustries.com/static/content/api/v0/systems.en.json";
        $.getJSON(endPoint)
            .done(function (response) {

                updateTitleFn({
                    "Platform": response[0].status,
                    "PU": response[1].status,
                    "EA": response[2].status,
                });

                console.log("Platform", response[0].status)
                console.log("PU", response[1].status)
                console.log("EA", response[2].status)

            })
    }
更新 如果我取消对这些部分的注释,这就是它显示的内容。很难说,但是发生了什么,它取了三次替换
setTitle
,然后取最后一行<代码>$SD.api.setTitle(上下文,result.EA.replace(新的RegExp(''g'),'\n'))+ “\n”+result.EA+”) 通过截图

要从
JSON.stringify获得格式良好的输出,请提供可选参数:

JSON.stringify(obj, null, 2)
让arr=[“菠萝”、“柠檬”、“苹果”、“橙子”、“桃子”];
document.getElementById('result').innerHTML=
'Stringify default:'+JSON.Stringify(arr)+'\n\n'+
'Stringify formatted:'+JSON.Stringify(arr,null,2);

我假设注释的代码就是您需要帮助修复的代码。如果你取消注释,你的应用程序会显示什么?您希望它以不同的方式显示什么?请出示一些截图。你好。我已经更新了我的评论,@Code学徒希望它有意义。我希望它显示“平台操作\n PU性能降级\n EA操作”要使用多行和缩进输出进行字符串化,请使用
JSON.stringify(myObject,null,2)
。如果您不想缩进,请省略“2”。谢谢@恐怖的