如何将Java数组类型字符串转换为字符串数组?

我使用apache kafka发布字符串消息。发布之前,邮件类型为字符串数组,如下所示,

String[] msgArray = ["aaa","bbb","ccc"];

我的kafka发布消息类型是java字符串,因此我使用Arrays.toString(msgArray)方法将此数组转换为字符串。 Apache Kafka的发布和使用工作良好。收到的消息是Java字符串["aaa","ccc"]。但是问题是我不知道如何将该数组类型的字符串消息转换回字符串数组。下面是我的代码的一部分。

//record.value is array type string -> ["aaa","ccc"]
String[] parameters = new String[record.value().split(",").length];  
int i=0;
for(String str : record.value().split(",")) {
    if(i < parameters.length) {
        parameters[i] = str.replace("]","").replace("[","");
    }
    i++;
}

但是结果不合适。是否有任何将数组类型字符串转换为字符串数组的数组API?

zydalh 回答:如何将Java数组类型字符串转换为字符串数组?

如何用String反序列化JSONArray

import org.json.JSONArray;

String[] msgArray = {"aaa","bbb","ccc"};

// serializing
String msg = Arrays.toString(msgArray);

// deserializing
JSONArray jsonArray = new JSONArray(msg);
System.out.println(jsonArray.toList());
,

您可以按照Psidom的回答或尝试以下选项:

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;    
List<String> msgArray = new ObjectMapper().readValue(msg,new TypeReference<List<String>>(){});
,

您还可以使用对象映射器对输入和输出进行序列化和反序列化。因为它提供了对所有数据类型以及自定义数据的支持。

String[] msgArray = {"aaa","ccc"};

ObjectMapper objectMapper = new ObjectMapper();
String value = objectMapper.writeValueAsString(msgArray);
String[] strings = objectMapper.readValue(value,String[].class);
本文链接:https://www.f2er.com/3168807.html

大家都在问