jsonData.search(key)!== -1のためにJavaスクリプトコードが "COMPLETED"と一致すると、jsonレスポンスにCOMPLETEDが含まれていないため、出力の緑の代わりにカラーを使用します。JSONレスポンスがカラーデータの部分キーと正しく一致していません
参考:
Getting specific color for specific value using JSON data
出力:[ "グリーン"、 "赤"]期待
:[ "赤"]
jsonData:
{"cols":[{"label":"sprint_status","type":"string"},{"label":"count","type":"string"}],"rows":[{"c":[{"v":"NOT_COMPLETED"},{"v":4}]}]}
はJavaScript:
const colorMap = {
COMPLETED: 'green',
NOT_COMPLETED: 'red'
};
Object.keys(colorMap).forEach((key, index) => {
if (jsonData.search(key) !== -1) {
customColors.push(colorMap[key]);
}
});
実際の出力: "COMPLETED - 緑" に
カラーキーが一致した最初の原因検索に(キー)。 - 最初
カラーキーは "赤NOT_COMPLETED" に一致する必要があります
:出力期待。
誰かがNOT_COMPLETEDに合わせて私を助けてください - 代わりにCOMPLETEDの色を読んで - 緑の色を?前もって感謝します!代わりにKEY
の
なぜJSON文字列を解析して結果のオブジェクトを処理しないのですか? 'let data = JSON.parse(" jsonData string ");'と同様に 'data.rows.c.v ===" COMPLETED "'をチェックしますか?または、この質問は特に 'String.search()'についてですか?私はあなたの仕事を完了するためにいくつかの正規表現が必要になると思います。 –
目的はJSON文字列を使用して色を一致させることです。この場合、JSON文字列にはCOMPLETEDは含まれておらず、NOT_COMPLETEDのみが含まれていますが、検索によって緑色になります。それはデータと正確に一致するはずです。 –
しかし、チェックできるオブジェクトを受け取るためにJSON文字列を解析したいのですが?とにかくこの場合、if(jsonData.search( "\" + key + "\" ")!== -1)'をif条件として使うことはできますが、文字列の解析ははるかに頑強です –