【问题标题】:Want to convert multiple json objects to an array in angular JS想要将多个json对象转换为angular JS中的数组
【发布时间】:2017-01-11 17:50:44
【问题描述】:

要求是:将运行自动化测试套件。在拆解活动中,我正在运行一个 java 程序,该程序将从 excel 中获取数据并生成一个 JSON 文件。 Json 文件正在正确生成。现在我正在维护一个文件,比如说 JSON 存储库,它将为每个生成的文件都有一个条目。

我可以用 java 来做,filewriter 将 true 作为构造函数的第二个参数,并在 JSONrepository 文件中输入新生成的 JSON 文件,如下所示/

{"testSuiteID" : 1, "testSuiteName" : "Dummy Name", "timestamp":"1jan2017_8_00_pm", "testsuite_JSONfile" : "IamNewlyGeneratedJSON.json"},
{"testSuiteID" : 2, "testSuiteName" : "Dummy Name2", "timestamp":"1jan2017_820_pm", "testsuite_JSONfile" : "IamNewlyGeneratedJSON_2.json"}

现在,我从 Angular 发出 $http.get 请求以获取该文件的内容。

我希望这是一个数组

[{"testSuiteID" : 1, "testSuiteName" : "Dummy Name", "timestamp":"1jan2017_8_00_pm", "testsuite_JSONfile" : "IamNewlyGeneratedJSON.json"},
{"testSuiteID" : 2, "testSuiteName" : "Dummy Name2", "timestamp":"1jan2017_820_pm", "testsuite_JSONfile" : "IamNewlyGeneratedJSON_2.json"}]

这只不过是在文件的开头和结尾插入方括号。虽然这也可以从 java 完成,但我试图避免这种开销。

我可以用 javascript/jquery/angular 来做吗?

任何帮助将不胜感激。

【问题讨论】:

  • 我对你到底想要做什么感到困惑。您是否尝试从 JavaScript 写入 JSON 文件?
  • 不,我只是想读它。并将所有 json 对象转换为数组,以便我可以使用 ng-repeat 对其进行迭代。
  • 好吧,您的第一个示例不是有效的 JSON。您的对象需要在方括号[] 内,因为它们是一组项目。我很想知道console.log(response.data) 在你的$http.get 回调中放了什么。我认为它可能只是一个字符串,在这种情况下,您可以在其周围附加 [],然后在新字符串上执行 JSON.parse()

标签: javascript jquery angularjs angularjs-directive


【解决方案1】:

如果只是想转成数组,可以使用JSON.parse()

var result = [];

var in1 = '{"testSuiteID" : 1, "testSuiteName" : "Dummy Name", "timestamp":"1jan2017_8_00_pm", "testsuite_JSONfile" : "IamNewlyGeneratedJSON.json"},{"testSuiteID" : 2, "testSuiteName" : "Dummy Name2", "timestamp":"1jan2017_820_pm", "testsuite_JSONfile" : "IamNewlyGeneratedJSON_2.json"}';

result=JSON.parse("["+in1+"]");

console.log(result);

【讨论】:

    【解决方案2】:

    您尝试执行的操作有点奇怪,但理想情况下,端点应该在您的情况下返回正确的 JSON 数组。

    如果你试图将它包裹在方括号中,那只是简单的字符串操作。

    var json = "{}"
    
    function wrapInBrackets(myStr) {
      return '[' + myStr + ']'
    }
    

    要将其转换为正确的 json 对象,您需要使用 JSON.parse()

    var obj = JSON.parse(wrapInBrackets(json));
    

    【讨论】:

    • 你可能应该在新字符串上包含一些关于使用 JSON.parse() 的内容,因为他们 OP 要求的是一个数组,而不是一个字符串
    猜你喜欢
    • 2018-01-24
    • 2018-02-06
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 2019-05-08
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多