在java中,如何将一个字符串与多个json对象分开?
我需要一些帮助:我有一个通过http GET请求得到的字符串,在这个字符串中有许多项是以json形式编写的。我的问题是如何分离或检索该项并将其保存为json文件 以下是我打印回复的方式:在java中,如何将一个字符串与多个json对象分开?,java,json,httpclient,Java,Json,Httpclient,我需要一些帮助:我有一个通过http GET请求得到的字符串,在这个字符串中有许多项是以json形式编写的。我的问题是如何分离或检索该项并将其保存为json文件 以下是我打印回复的方式: String responseBody = EntityUtils.toString(response.getEntity()); System.out.println(responseBody); 这可能适合您: import java.io.File; import java.io.IOException
String responseBody = EntityUtils.toString(response.getEntity());
System.out.println(responseBody);
这可能适合您:
import java.io.File;
import java.io.IOException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Test {
public static void main(String[] args) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
String responseBody ="{ \"result\": [ { \"name\": \"tom\", \"gender\": \"male\", \"address\": {\"city\": \"NY\", \"town\": \"US\"}, \"age\": \"20\"}, { \"name\": \"sarah\", \"gender\": \"female\", \"address\": {\"city\": \"NY\", \"town\": \"US\"}, \"age\": \"22\"}] } ";
JsonNode jsonNode = objectMapper.readValue(responseBody, JsonNode.class);
JsonNode jsonArray =jsonNode.get("result");
if (jsonArray.isArray()) {
for (JsonNode objNode : jsonArray) {
String fileName = String.format( "file%s.json",objNode.get("name").asText());
objectMapper.writeValue(new File(fileName), objNode);
}
}
}
}
在这里,我将
responseBody
转换为JsonNode对象,然后迭代result
字段的每个元素,并将其保存为文件。您能否与JSON共享一个字符串示例。@JobyWilsonMathews我的打印类似于{“result”:[{“name”:“tom”,“性别”:“男性”,“地址”:{“城市”:“纽约”,“城镇”:“美国”},“年龄”:“20”},{“姓名”:“莎拉”,“性别”:“女性”,“地址”:{“城市”:“纽约”,“城镇”:“美国”},“年龄”:“22”},…]}@SalahEddineBelmabrouk如果您想将字符串值转换为json,你可以检查,或者如果你想将json写入一个文件,你可以检查@Sha,但是在我的字符串中我有不同的json对象,你明白吗?@SalahEddineBelmabrouk,你有一个jsonobject,比如列表结果;您的用户对象包含名称、性别和地址(这是另一个包含城市、城镇的类)字段
。所以你可以在这里使用gson库。