从字符串json(简单对象)中获取一个键值对



我试图得到一个关键:值对从一个简单的jsonString添加到内存选项卡后。如果面临一个问题,导致我的输入是一个字符串。看起来我的循环不能读取键值对

我读了很多关于它的话题,但我仍然遇到麻烦。如下图

所示
{"nom":"BRUN","prenom":"Albert","date_naiss":"10-10-1960","adr_email":"abrun@gmail.com","titre":"Mr","sexe":"F"}

和我的方法,只在对象上找到…在我的循环

中结果是一样的
public static ArrayHandler jsonSimpleObjectToTab(String data) throws ParseException {
if( data instanceof String) {
final var jsonParser = new JSONParser();
final var object = jsonParser.parse(data);
final var array = new JSONArray();
array.put(object);
final var handler = new ArrayHandler("BW_funct_Struct");
for( KeyValuePair element : array) {
handler.addCell(element);
Log.warn(handler);
}
return handler;
} else {
throw new IllegalArgumentException("jsonSimpleObjectToTab: do not support complex object" + data + "to Tab");
}
}

我也试过之前键入我的数组作为列表,对象等,没有keyValuePair对象,我会感激一些帮助。

再次感谢亲爱的StackOverFlowers;)

你可以试试:

const json = '{"nom":"BRUN","prenom":"Albert","date_naiss":"10-10-1960","adr_email":"abrun@gmail.com","titre":"Mr","sexe":"F"}';

map = new Map();
const obj = JSON.parse(json,(key,value) => {
map.set(key,value)
});

那么每一对都存储在map

只需在逗号处分割整行,然后在冒号处分割生成的部分。这将为您提供名称和值的各个部分。

试题:

假设

String input = ""nom":"BRUN","prenom":"Albert"";

然后

String[] nameValuePairs = input.split(",");
for(String pair : nameValuePairs)
{
String[] nameValue = pair.split(":");
String name = nameValue[0]; // use it as you need it ...
String value = nameValue[1]; // use it as you need it ...
}

可以使用typerreference转换为Map<String,String>这样你就有了键值对

String json = "{"nom":"BRUN","prenom":"Albert","date_naiss":"10-10-1960","adr_email":"abrun@gmail.com","titre":"Mr","sexe":"F"}";
ObjectMapper objectMapper = new ObjectMapper();
TypeReference<Map<String,String>> typeReference = new TypeReference<Map<String, String>>() {
};
Map<String,String> map = objectMapper.readValue(json, typeReference);

我刚刚回答了一个非常相似的问题。它的要点是,您需要将Json字符串解析为某个对象。在您的示例中,可以将其解析为Map。下面是这个问题的链接和我的答案。但这里有一个简短的版本:你可以使用任何Json库,但推荐的是Jackson Json(也称为更快的XML)或Gson(由Google)。这里是他们的用户指南网站。要解析Json文本到类实例,您可以使用ObjectMapper类,这是Jackson-Json库的一部分。例如

public <T> T readValue(String content,
TypeReference valueTypeRef)
throws IOException,
JsonParseException,
JsonMappingException

看到Javadoc。但我也可以建议一个非常简单的JsonUtils类,它是ObjectMapper类的薄包装。您的代码可以像这样简单:

Map<String, Object> map;    
try {   
map = JsonUtils.readObjectFromJsonString(input , Map.class);
} catch(IOException ioe) {
....
}

这是JsonUtils类的Javadoc。这个类是我编写和维护的MgntUtils开源库的一部分。您可以从Maven工件或Github

中获得它。

相关内容

  • 没有找到相关文章