如何将 JSON 格式化为单个 javascript 对象

用户8655507

我有以下格式JSON字符串。

{
"dt_total_score": [
{
  "score": 60.8332,
  "gText": "Total"
},
{
  "score": 66.6666,
  "gText": "Call Center"
},
{
  "score": 66.6666,
  "gText": "Restaurant reservation"
},
{
  "score": 50,
  "gText": "Arriving (Trams) - Experience or Observation"
},
{
  "score": 60,
  "gText": "Arrival & Parking Experience"
}
],
"dt_trend": [
{
  "score": 60,
  "gText": "Q1,2018",
  "seriesName": "Arrival & Parking Experience",
  "ONUM": 1
},
{
  "score": 50,
  "gText": "Q1,2018",
  "seriesName": "Arriving (Trams) - Experience or Observation",
  "ONUM": 1
},
{
  "score": 66.6666,
  "gText": "Q1,2018",
  "seriesName": "Call Center",
  "ONUM": 1
},
{
  "score": 66.6666,
  "gText": "Q1,2018",
  "seriesName": "Restaurant reservation",
  "ONUM": 1
},
{
  "score": 60.8333,
  "gText": "Q1,2018",
  "seriesName": "Total",
  "ONUM": 2
},
{
  "score": 60.8333,
  "gText": "Q4,2017",
  "seriesName": "Total",
  "ONUM": 2
},
{
  "score": 60.8333,
  "gText": "Q3,2017",
  "seriesName": "Total",
  "ONUM": 2
}
]
,
"dt_compartive":[  
  {  
     "gText":"Total",
     "percentDiff":6083.0000
  }
 ]
  }

在上面的 JSON 中:

  1. dt_total_score 具有特定类别的瞬时分数。
  2. dt_trend 具有给定时间范围内的得分趋势(在上述情况下为季度,但也可以是周或月)。
  3. dt_comparative 具有时间范围内分数的百分比差异

我必须按照以下方式基于类别解析上述数据并将其合并到 Javascript 对象列表中。请注意,此数据仅用于说明我想要的输出方式,与上述数据无关

var dt_score_n_trend = [

{
gText:"Call Center",
score: 60.2223,
trendName:[ "Q1,2018", "Q2,2018"],
trendValue:[ 60, 70],
PercentageDiff:70
},
 {
gText:"Call Center",
score: 60.2223,
trendName: [ "Q1,2018", "Q2,2018"],
trendValue:[ 60, 70],
PercentageDiff:70
}
];

到目前为止,我尝试将 JSON 解析为 Javascript 对象,然后尝试合并它们,但未成功。

我如何将它们合并为上述方式?

编辑:更新了问题并删除了格式错误

哈桑·伊玛目

您可以使用array#reduce到组dt_trend阵列基础上seriesName创建一个累加器对象,并为每个新seriesName对象添加一个新对象,并为旧对象更新趋势值。然后提取所有值。

var data = { "dt_total_score": [ { "score": 60.8332, "gText": "Total" }, { "score": 66.6666, "gText": "Call Center" }, { "score": 66.6666, "gText": "Restaurant reservation" }, { "score": 50, "gText": "Arriving (Trams) - Experience or Observation" }, { "score": 60, "gText": "Arrival & Parking Experience" } ], "dt_trend": [ { "score": 60, "gText": "Q1,2018", "seriesName": "Arrival & Parking Experience", "ONUM": 1 }, { "score": 50, "gText": "Q1,2018", "seriesName": "Arriving (Trams) - Experience or Observation", "ONUM": 1 }, { "score": 66.6666, "gText": "Q1,2018", "seriesName": "Call Center", "ONUM": 1 }, { "score": 66.6666, "gText": "Q1,2018", "seriesName": "Restaurant reservation", "ONUM": 1 }, { "score": 60.8333, "gText": "Q1,2018", "seriesName": "Total", "ONUM": 2 }, { "score": 60.8333, "gText": "Q4,2017", "seriesName": "Total", "ONUM": 2 }, { "score": 60.8333, "gText": "Q3,2017", "seriesName": "Total", "ONUM": 2 } ], "dt_compartive":[{"gText":"Total","percentDiff":6083.0000}]},
    result = data.dt_trend.reduce((r,o) => {
      r[o.seriesName] = r[o.seriesName] || {gText: o.seriesName, score: o.score, trendName: [], trendValue: []};
      r[o.seriesName].trendName.push(o.gText);
      r[o.seriesName].trendValue.push(o.score);
      return r;
    },{});
data.dt_compartive.forEach(o => {
  result[o.gText].PercentageDiff = o.percentDiff;
});
var output = Object.values(result);
console.log(output);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将JSON数据重新格式化为Javascript对象

来自分类Dev

如何将JSON对象格式化为Pandas Dataframe?

来自分类Dev

如何将对象重新格式化为数组Javascript

来自分类Dev

如何将JSON对象正确格式化为dataTable for Google Visualization Chart

来自分类Dev

将JavaScript Date对象格式化为特定格式

来自分类Dev

如何将JavaScript对象(JSON)转换为JSV格式?

来自分类Dev

如何将特殊的JSON格式解析为JavaScript对象?

来自分类Dev

如何将JavaScript对象(JSON)转换为JSV格式?

来自分类Dev

如何将JavaScript对象转换为DyanamoDb JSON格式?

来自分类Dev

将Javascript对象格式化为新数组

来自分类Dev

JavaScript 将字符串格式化为数组对象

来自分类Dev

如何将数组的对象格式化为新对象

来自分类Dev

如何将Python MySQLdb SELECT结果格式化为json.dumps,键值对以出现在json对象中

来自分类Dev

如何通过JSON将Java的日期对象从Java GregorianCalendar对象格式化为String

来自分类Dev

如何将bash数组格式化为JSON数组

来自分类Dev

如何将数组列表格式化为json

来自分类Dev

jOOQ JSON格式化为对象数组

来自分类Dev

jOOQ JSON格式化为对象数组

来自分类Dev

jOOQ JSON格式化为对象数组

来自分类Dev

将长度可变的深度嵌套JSON对象重新格式化为一组简化的对象

来自分类Dev

将数据数组格式化为对象

来自分类Dev

Powershell:将JSON嵌套数组重新格式化为对象数组

来自分类Dev

将字符串格式化为JSON对象以在HTML中显示[/(ngModel)]

来自分类Dev

将 json 对象格式化为电子表格,如 JS 中的数组

来自分类Dev

如何将包含不同数据类型的JSON数组反序列化为单个对象

来自分类Dev

如何将JavaScript对象数组转换为单个对象?

来自分类Dev

将 JSON 反序列化为包含格式化为字符串的 Point 值的多态对象的 .NET 集合

来自分类Dev

如何将其从 str 格式化为类似字节的对象?

来自分类Dev

如何将树类对象结构序列化为json文件格式?

Related 相关文章

  1. 1

    将JSON数据重新格式化为Javascript对象

  2. 2

    如何将JSON对象格式化为Pandas Dataframe?

  3. 3

    如何将对象重新格式化为数组Javascript

  4. 4

    如何将JSON对象正确格式化为dataTable for Google Visualization Chart

  5. 5

    将JavaScript Date对象格式化为特定格式

  6. 6

    如何将JavaScript对象(JSON)转换为JSV格式?

  7. 7

    如何将特殊的JSON格式解析为JavaScript对象?

  8. 8

    如何将JavaScript对象(JSON)转换为JSV格式?

  9. 9

    如何将JavaScript对象转换为DyanamoDb JSON格式?

  10. 10

    将Javascript对象格式化为新数组

  11. 11

    JavaScript 将字符串格式化为数组对象

  12. 12

    如何将数组的对象格式化为新对象

  13. 13

    如何将Python MySQLdb SELECT结果格式化为json.dumps,键值对以出现在json对象中

  14. 14

    如何通过JSON将Java的日期对象从Java GregorianCalendar对象格式化为String

  15. 15

    如何将bash数组格式化为JSON数组

  16. 16

    如何将数组列表格式化为json

  17. 17

    jOOQ JSON格式化为对象数组

  18. 18

    jOOQ JSON格式化为对象数组

  19. 19

    jOOQ JSON格式化为对象数组

  20. 20

    将长度可变的深度嵌套JSON对象重新格式化为一组简化的对象

  21. 21

    将数据数组格式化为对象

  22. 22

    Powershell:将JSON嵌套数组重新格式化为对象数组

  23. 23

    将字符串格式化为JSON对象以在HTML中显示[/(ngModel)]

  24. 24

    将 json 对象格式化为电子表格,如 JS 中的数组

  25. 25

    如何将包含不同数据类型的JSON数组反序列化为单个对象

  26. 26

    如何将JavaScript对象数组转换为单个对象?

  27. 27

    将 JSON 反序列化为包含格式化为字符串的 Point 值的多态对象的 .NET 集合

  28. 28

    如何将其从 str 格式化为类似字节的对象?

  29. 29

    如何将树类对象结构序列化为json文件格式?

热门标签

归档