将逗号分隔的字符串转换为Json字符串

4
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));

10
你面临什么问题? - sidgate
@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)); 所以,即使我处理多个学生,我也想仅创建单个对象,并且该转换过程应该是线程安全的。 - vishal pathode
1
使用Map<String,String>作为参数,使用JSONObject构造函数。 - halfpad
2个回答

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);

1
你需要创建一个地图:
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);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接