【问题标题】:Convert comma separated String into Json string将逗号分隔的字符串转换为 Json 字符串
【发布时间】:2019-11-18 15:43:53
【问题描述】:
String input = "Vish,Path,123456789";

预期输出为 Json 字符串,并且线程安全 = {"name":"Vish","surname":"Path","mobile":"123456789"}

我尝试过使用

 GsonBuilder gsonBuilder = new GsonBuilder(); 
 Gson gson = gsonBuilder.create(); 

但每次我创建新对象时 -

MappingObject[] studentArray = new MappingObject[1]; 
studentArray[0] = new MappingObject("Vish","Path","123456789"); 

我使用 split() 分隔了这个逗号分隔的字符串

 System.out.println("JSON "+gson.toJson(studentArray));

【问题讨论】:

  • 你遇到了什么问题?
  • @sidgate 我尝试使用 GsonBuilder gsonBuilder = new GsonBuilder(); Gson gson = gsonBuilder.create();但每次我创建新对象时 - MappingObject[] studentArray = new MappingObject[1]; studentArray[0] = new MappingObject("Vish","Path","123456789");我使用 split() System.out.println("JSON "+gson.toJson(studentArray)); 分隔了这个逗号分隔的字符串。因此,即使我与多个学生一起工作,我也只想创建单个对象,并且转换过程也应该是线程安全的。
  • 使用带有 Map 作为参数的 JSONObject 构造函数

标签: java json string


【解决方案1】:

如果你不想使用任何库,那么你必须用逗号分割字符串并创建一个新的String

String input = "Vish,Path,123456789";
String[] values=input.split("[,]");
StringBuffer json = new StringBuffer();// StringBuffer is Thread Safe
json.append("{")
    .append("\"name\": \"").append(values[0]).append("\",")
    .append("\"surname\": \"").append(values[1]).append("\",")
    .append("\"mobile\": \"").append(values[2]).append("\"")
    .append("}");
System.out.println(json.toString());

输出:

{"name": "Vish","surname": "Path","mobile": "123456789"}

如果您想使用库,那么您将通过Jackson 实现这一目标。简单的制作一个类,然后用它制作json。

public class Person {
  private String name;
  private String surname;
  private String mobile;

  // ... getters and Setters
}

String input = "Vish,Path,123456789";
String[] values=input.split("[,]");
Person person = new Person(values[0],values[1],values[2]);// Assume you have All Argumets Constructor in specified order  
ObjectMapper mapper = new ObjectMapper(); //com.fasterxml.jackson.databind.ObjectMapper;
String json = mapper.writeValueAsString(person);

【讨论】:

    【解决方案2】:

    您必须创建一个地图:

    Map<String,String> jsonMap = new HashMap<String,String>();
    jsonMap.put("name","Vish");
    jsonMap.put("surname","Path");
    jsonMap.put("mobile","123456789");
    

    然后使用 com.google.gson JSONObject: JSONObject jsonObj = new JSONObject(jsonMap);

    【讨论】:

      猜你喜欢
      • 2020-11-27
      • 1970-01-01
      • 2018-08-16
      • 2013-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-17
      相关资源
      最近更新 更多