Как изменить значения JSON? - PullRequest
0 голосов
/ 26 марта 2019

Генерация JSON из карты (пары ключ-значение), по умолчанию ее взятие ключа и значения:

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import java.io.File;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

public class Entity2 {
private static void generatePartiallySearchableEntity(Map<String, Set<String>>sysMap,String root_dir_loc) throws Exception {

    Set<Entry<String, Set<String>>> entryset = sysMap.entrySet();   
    ObjectMapper mapperobj = new ObjectMapper();
    mapperobj.enable(SerializationFeature.INDENT_OUTPUT);
    mapperobj.writeValue(new File(root_dir_loc),entryset);
    System.out.println(mapperobj.writerWithDefaultPrettyPrinter().writeValueAsString(entryset));
    System.out.println("\njson file created in"+root_dir_loc+"");

    }

public static void main(String args[]) throws Exception {

    Map<String, Set<String>> synMap = new HashMap<String, Set<String>>();
    Set<String> severityEntitySet = new HashSet<String>();//severity

    severityEntitySet.add("Critical");
    severityEntitySet.add("Error");
    severityEntitySet.add("Warning ");
    severityEntitySet.add("Information");
    synMap.putIfAbsent("severity",severityEntitySet);

    Set<String> impactEntitySet = new HashSet<String>();//Impact
    impactEntitySet.add("Incident"); 
    impactEntitySet.add("Risk");
    impactEntitySet.add("Event");
    synMap.putIfAbsent("Impact", impactEntitySet);  

    String root_dir_loc = "C:\\test.json";
    generatePartiallySearchableEntity(synMap,root_dir_loc);
  } 
 }

вывод (мне не нужен ключ и текст значения в файле JSON)

[ {
  "key" : "severity",
  "value" : [ "Error", "Critical", "Information", "Warning " ]
}, {
  "key" : "Impact",
  "value" : [ "Risk", "Event", "Incident" ]
} ]

ожидаемый вывод (мне нужен текст значений и синонимов в файле JSON)

[ {
  "values" : "severity",
  "synonyms" : [ "Error", "Critical", "Information", "Warning " ]
}, {
  "values" : "Impact",
  "synonyms" : [ "Risk", "Event", "Incident" ]
} ]

любая помощь будет оценена

1 Ответ

0 голосов
/ 26 марта 2019

Я изменил какой-то код и получил ответ, который вы хотите

public class App 
{
    private static void generatePartiallySearchableEntity(java.util.List<Map> list,String root_dir_loc) throws Exception {

        ObjectMapper mapperobj = new ObjectMapper();
        mapperobj.enable(SerializationFeature.INDENT_OUTPUT);
        mapperobj.writeValue(new File(root_dir_loc),list);

        System.out.println(mapperobj.writerWithDefaultPrettyPrinter().writeValueAsString(list));
        System.out.println("\njson file created in"+root_dir_loc+"");

        }

    public static void main(String args[]) throws Exception {

        Map<String, Object> synMap = new HashMap<String, Object>();
        Set<String> severityEntitySet = new HashSet<String>();//severity
        java.util.List<Map> list = new ArrayList<Map>();
        severityEntitySet.add("Critical");
        severityEntitySet.add("Error");
        severityEntitySet.add("Warning ");
        severityEntitySet.add("Information");

        synMap.put("Values", "severity"); 
        synMap.put("synonyms", severityEntitySet);
        list.add(synMap);
        Set<String> impactEntitySet = new HashSet<String>();//Impact
        impactEntitySet.add("Incident"); 
        impactEntitySet.add("Risk");
        impactEntitySet.add("Event");
        synMap = new HashMap<String, Object>();
        synMap.putIfAbsent("Values", "Impact"); 
        synMap.putIfAbsent("synonyms", impactEntitySet);
        list.add(synMap);
        String root_dir_loc = "/home/devratnaarya/test.json";
        generatePartiallySearchableEntity(list,root_dir_loc);
      } 

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...