【问题标题】:Split Multiple Json Javascript拆分多个 Json Javascript
【发布时间】:2018-08-15 01:14:57
【问题描述】:

我有下面这样的 Json,

var json = [{"AVGDUR":1,"USERNAME":"usera","NAME":"name2","TOTALDOC":1}][{"AVGDUR":12,"USERNAME":"userb","NAME":"nameb","TOTALDOC":2}][{"AVGDUR":1.52,"USERNAME":"userc","NAME":"namec","TOTALDOC":617}][{"AVGDUR":2.41,"USERNAME":"userd","NAME":"named","TOTALDOC":167}][{"AVGDUR":1.65,"USERNAME":"usere","NAME":"namee","TOTALDOC":20}][{"AVGDUR":10,"USERNAME":"userf","NAME":"namef","TOTALDOC":1}][{"AVGDUR":0.46,"USERNAME":"userg","NAME":"nameg","TOTALDOC":143}]

现在我想为每个键将其拆分为 7 个 JSON 对象,如下所示。

var splitA =[{"AVGDUR":1,"USERNAME":"usera","NAME":"name2","TOTALDOC":1}]
var splitB = [{"AVGDUR":12,"USERNAME":"userb","NAME":"nameb","TOTALDOC":2}]
var splitC = [{"AVGDUR":1.52,"USERNAME":"userc","NAME":"namec","TOTALDOC":617}]
var splitD = [{"AVGDUR":2.41,"USERNAME":"userd","NAME":"named","TOTALDOC":167}]
var splitE = [{"AVGDUR":1.65,"USERNAME":"usere","NAME":"namee","TOTALDOC":20}]
var splitF = [{"AVGDUR":10,"USERNAME":"userf","NAME":"namef","TOTALDOC":1}]
var splitG = [{"AVGDUR":0.46,"USERNAME":"userg","NAME":"nameg","TOTALDOC":143}]

如何使用 javascript?

【问题讨论】:

  • 是我还是他们都一样?
  • 它不同,我希望第一个是多个 json 并且是 1 个 json,我想拆分它们
  • 它们是一样的。顺便说一句,这两个数据都不是有效的 json 结构。
  • 是的......同样......我猜问题解决了。你一直拥有你想要的东西。
  • 对不起,这是编辑过的json格式

标签: javascript java jquery json jsp


【解决方案1】:

首先这个json格式是无效的。如果不确定,您应该使用 json 验证器来检查您的字符串。(例如 https://jsonlint.com/) 一个 json 对象应该在大括号 {} 内。 每个属性:值对应该用逗号分隔。如果对象中有一个数组,它应该在括号 [] 内。 因此,在您的示例中,这是一个由对象组成的数组,您应该在开头有一个左括号,最后有一个右括号。在大括号内,您的所有对象都应该在每个右大括号 (}) 之后有一个逗号 (,)。

然后您可以通过多种方式获取这些对象。 例如,您可以逐个字符地检查您的 json String char 并跟踪每个左大括号和右大括号的索引,然后获取具有正确索引的子字符串。

但是,有 Json 解析器可以帮助您完成工作,但您的格式应该是有效的,以便它们工作。

【讨论】:

    【解决方案2】:

    观察很少:

    • 您提供的JSON 不是有效的JSON
    • 应该是array of objects,而不是多个数组。

    按要求解决:

    var json = [{
    	"AVGDUR": 1,
    	"USERNAME": "usera",
    	"NAME": "name2",
    	"TOTALDOC": 1
    }, {
    	"AVGDUR": 12,
    	"USERNAME": "userb",
    	"NAME": "nameb",
    	"TOTALDOC": 2
    }, {
    	"AVGDUR": 1.52,
    	"USERNAME": "userc",
    	"NAME": "namec",
    	"TOTALDOC": 617
    }, {
    	"AVGDUR": 2.41,
    	"USERNAME": "userd",
    	"NAME": "named",
    	"TOTALDOC": 167
    }, {
    	"AVGDUR": 1.65,
    	"USERNAME": "usere",
    	"NAME": "namee",
    	"TOTALDOC": 20
    }, {
    	"AVGDUR": 10,
    	"USERNAME": "userf",
    	"NAME": "namef",
    	"TOTALDOC": 1
    }, {
    	"AVGDUR": 0.46,
    	"USERNAME": "userg",
    	"NAME": "nameg",
    	"TOTALDOC": 143
    }];
    
    for (var i in json) {
      console.log("var " + json[i].USERNAME + " = " , [json[i]]);
    }

    【讨论】:

      猜你喜欢
      • 2018-06-28
      • 2016-09-05
      • 1970-01-01
      • 2022-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-10
      相关资源
      最近更新 更多