如何在java中为管道分隔符创建json?

wydwbb8l  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(268)

假设我有这个结构

FirstName| Auro
LastName|Winkies
Age|26

我们如何将其转换为json?我想要管道分隔符之前的单词 | 应该在 L 属性和管道分隔符后面的单词 | 应该被洗牌并保存到另一个属性中 RC 财产就像 Winkies2 position 在管道分隔符之后,类似地 auro1 position263 position 可以用java创建这个json结构吗。
我想首先我需要分开 \n 并进一步分为 \\| ```
{
"L": ["FirstName" , "LastName" , "Age"],
"R": ["Winkies" , "Auro" , "26"],
"C":["2" ,"1" , "3"]
}

如果可能的话,任何人都可以帮我解释一下逻辑
68de4m5k

68de4m5k1#

我没有发现“c”字段的实用性,但这里有一个解决方案

import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import com.fasterxml.jackson.databind.node.ObjectNode;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public static void main(final String[] args) {
    String data = "FirstName|Auro\n" +
                  "LastName|Winkies\n" +
                  "Age|26";

    List<String> l = new ArrayList<>();
    List<String> r = new ArrayList<>();
    ObjectNode node = JsonNodeFactory.instance.objectNode();
    List<String> c = Arrays.asList("1,2,3");

    String[] split = data.split("\n");
    for (String s : split) {
        int i = s.indexOf('|');
        l.add(s.substring(0, i));
        r.add(s.substring(i + 1, s.length()));
    }
    node.put("L",l.toString());
    node.put("R",r.toString());
    node.put("C",c.toString());

    System.out.println(node);
}

相关问题