我想标识传入数据,并且需要为相同的颜色应用完全相同的颜色。使用JSON数据为特定值获取特定颜色
数据序列按照固定顺序(但都可能存在或不存在),需要应用如下所述的固定颜色。
例如,预期的数据序列和色序是象下面这样:
CLOSED GREEN
VERIFIED GREEN
RESOLVED YELLOW
REOPENED RED
IN_PROGRESS BLUE
ASSIGNED BROWN
NEW BROWN
UNCONFIRMED BROWN
所以每当CLOSED
来GREEN
颜色应适用,对于RESOLVED
- >YELLOW
和....用于UNCONFIRMED
- >BROWN
。
现在的问题是所有的数据可能会来,可能不会来,例如,
CLOSED
VERIFIED
IN_PROGRESS
UNCONFIRMED
像Java脚本这么写的基本逻辑:
if (jsonData.search("CLOSED") != -1
&& jsonData.search("VERIFIED") != -1
&& jsonData.search("IN_PROGRESS") != -1
&& jsonData.search("UNCONFIRMED") != -1) {
colors: ['green', 'green', 'blue', 'brown'],
} else if (jsonData.search("IN_PROGRESS")
&& jsonData.search("ASSIGNED") != -1) {
colors: ['blue', 'brown'],
} else if (jsonData.search("IN_PROGRESS")) {
colors: ['blue'],
} else if (jsonData.search("CLOSED") != -1
|| jsonData.search("VERIFIED") != -1) {
colors: ['green'],
}
这将工作上面的序列,但只要数据将是例如不同
IN_PROGRESS
NEW
OR
RESOLVED
REOPENED
NEW
OR
CLOSED
IN_PROGRESS
OR
RESOLVED
NEW
等。很多很多的组合...
然后这将失败,并将错误的颜色应用于数据。如果我写出每一个数据和各个序列的条件,那么我会变得疯狂,而且它完全无效,乏味且非常复杂。
下面是样本JSON数据:
{"cols":[{"label":"status","type":"string"},{"label":"count","type":"string"}],"rows":[{"c":[{"v":"VERIFIED"},{"v":16}]},{"c":[{"v":"RESOLVED"},{"v":1}]},{"c":[{"v":"IN_PROGRESS"},{"v":14}]},{"c":[{"v":"ASSIGNED"},{"v":39}]},{"c":[{"v":""},{"v":0}]}]}
{"cols":[{"label":"status","type":"string"},{"label":"count","type":"string"}],"rows":[{"c":[{"v":"CLOSED"},{"v":3}]},{"c":[{"v":"VERIFIED"},{"v":13}]},{"c":[{"v":"RESOLVED"},{"v":2}]},{"c":[{"v":"IN_PROGRESS"},{"v":26}]},{"c":[{"v":"ASSIGNED"},{"v":2}]},{"c":[{"v":""},{"v":0}]}]}
{"cols":[{"label":"status","type":"string"},{"label":"count","type":"string"}],"rows":[{"c":[{"v":"IN_PROGRESS"},{"v":3}]},{"c":[{"v":"NEW"},{"v":8}]},{"c":[{"v":""},{"v":0}]}]}
{"cols":[{"label":"status","type":"string"},{"label":"count","type":"string"}],"rows":[{"c":[{"v":"RESOLVED"},{"v":12}]},{"c":[{"v":"IN_PROGRESS"},{"v":9}]},{"c":[{"v":"ASSIGNED"},{"v":15}]},{"c":[{"v":""},{"v":0}]}]}
{"cols":[{"label":"status","type":"string"},{"label":"count","type":"string"}],"rows":[{"c":[{"v":"VERIFIED"},{"v":6}]},{"c":[{"v":"IN_PROGRESS"},{"v":40}]},{"c":[{"v":"ASSIGNED"},{"v":7}]},{"c":[{"v":"NEW"},{"v":8}]},{"c":[{"v":""},{"v":0}]}]}
{"cols":[{"label":"status","type":"string"},{"label":"count","type":"string"}],"rows":[{"c":[{"v":"CLOSED"},{"v":3}]},{"c":[{"v":"VERIFIED"},{"v":35}]},{"c":[{"v":"RESOLVED"},{"v":15}]},{"c":[{"v":"IN_PROGRESS"},{"v":92}]},{"c":[{"v":"ASSIGNED"},{"v":63}]},{"c":[{"v":"NEW"},{"v":16}]},{"c":[{"v":""},{"v":0}]}]}
可有人想着有效逻辑而不是写确切顺序个人数据+色似提到?
请让我知道如果有任何问题或我错过了任何东西。
为什么不能分别处理每一行数据,而不是将其视为一个序列。 –
JSON数据的外观如何? –
因为我想根据顺序应用颜色。您如何分别处理数据? –