首页 > 解决方案 > java - 如何在Java中为管道分隔符创建JSON?

问题描述

假设我有这个结构

FirstName| Auro
LastName|Winkies
Age|26

我们如何将其转换为 json 我希望管道分隔符之前的单词| 应该在L属性中,管道分隔符之后的单词|应该被打乱并将其保存到另一个属性R中,并且该C属性就像Winkies2 position管道分隔符之后一样,同样auro是在1 position并且263 position

是否可以在 java 中创建这个 json 结构。

我想首先我需要将其拆分\n并进一步拆分为\\|

{
"L": ["FirstName" , "LastName" ,  "Age"],
"R": ["Winkies" , "Auro" , "26"],
"C":["2" ,"1" , "3"]
}

如果可能的话,任何人都可以帮助我解决逻辑

标签: java

解决方案


我没有找到“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);
}

推荐阅读