【问题标题】:Create JSON from a plain string using pojo使用 pojo 从纯字符串创建 JSON
【发布时间】:2021-07-09 14:55:48
【问题描述】:

我在 java 中有一个纯字符串,如下所示

Roll: 1
Name: john
Roll: 2
Name: jack
Roll: 3
Roll: 4
Name: julie

请参阅此处以查看缺少第 3 卷名称的信息,

我想将上面的字符串转换为如下所示的 json,

{ "block":[ { "Roll":"1", "Name":"john" }, { "Roll":"2", "Name":"jack" }, { "Roll":"4", "Name":"julie" } ] }

如何使用 java、gson 和 pojo 实现它。

【问题讨论】:

  • 你有对象或字符串?
  • 我有一个纯字符串,无法获取如何将名称与卷号映射的逻辑
  • 你有一个字符串并且想将该字符串转换为 json 字符串?
  • 它不应该是一个普通的json,它应该是我上面提到的格式
  • 我想,你的问题有点令人困惑,你最初有什么?这些RollName 是什么?对象的属性,并且您有该对象的列表,需要将其转换为您提到的 json 格式?

标签: java json string pojo


【解决方案1】:

这是我的建议:

import java.util.ArrayList;
import java.util.List;
import com.google.gson.Gson;

public class Test {
    public static void main(String[] args) {
        Gson gson = new Gson();
        String s = "Roll: 1\nName: john\nRoll: 2\nName: jack\nRoll: 3\nRoll: 4\nName: julie";
        String[] values = s.split("\n");
        List<Obj> objects = new ArrayList<Obj>();
        for(int i = 0; i < values.length - 1; i++){
            Obj o = new Obj(0, null);
            if(values[i].startsWith("Roll")){
                o.Roll = Integer.parseInt(values[i].split(":")[1].trim());
                if(values[i + 1].startsWith("Name")){
                    o.Name = values[i + 1].split(":")[1];
                    i++;
                } else {
                    o.Name = null;
                }
            }
            objects.add(o);
        }
        EndResult result = new EndResult();
        result.block = new Obj[objects.size()];
        for(int i = 0; i < objects.size(); i++){
            result.block[i] = objects.get(i);
        }
        System.out.println(gson.toJson(result));
    }
}

class EndResult{
    Obj[] block;
}

class Obj{
    int Roll;
    String Name;

    Obj(int Roll, String Name){
        this.Roll = Roll;
        this.Name = Name;
    }
}

【讨论】:

  • 非常感谢,正是我想要的,真的很有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-07
  • 1970-01-01
  • 2014-03-27
  • 2012-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多