added json output to Mitretactics, MitreTags, and OtherTags

This commit is contained in:
DastInDark
2022-08-24 01:04:40 +09:00
parent f300a07486
commit ce700f9c18

View File

@@ -848,6 +848,41 @@ fn output_json_str(
tmp = String::default();
}
}
} else if output_value_fmt.contains("%MitreTags%") || output_value_fmt.contains("%MitreTactics%") || output_value_fmt.contains("%OtherTags%") {
println!("k dbg | {} | v dbg | {:?}", k, v);
let tmp_val: Vec<&str> = v.split(": ").collect();
println!("tmp_val dbg | {:?} | len dbg | {:?}", tmp_val, tmp_val.len());
let key = _convert_valid_json_str(&[k.as_str()]);
let values = &tmp_val;
let mut value:Vec<String> = vec![];
let mut valid_data_cnt =0;
if tmp_val.is_empty() {
value.push("[]".to_string());
}
for (idx, tag_val) in values.iter().enumerate() {
if idx == 0 {
value.push("[".to_string());
}
if tag_val == &"" {
continue;
}
let insert_val = format!(" \"{}\"", tag_val.trim());
value.push(insert_val);
if idx != values.len() - 1 {
value.push(",\n".to_string());
}
valid_data_cnt += 1;
}
if valid_data_cnt > 0 {
value.push(" ]".to_string());
} else {
value.push("]".to_string());
}
let fmted_val = value.join("");
target.push(_create_json_output_format(&key, &fmted_val, key.starts_with('\"'), true));
}
}
target.join(",\n")