在顶级lvl上迭代Json java
我使用json simple从json文件中传递一些数据,该文件如下所示在顶级lvl上迭代Json java,java,json,Java,Json,我使用json simple从json文件中传递一些数据,该文件如下所示 { "steam": { "name": "steam", "location": "C:\\Program Files (x86)\\Steam" }, "test": { "name": "test", "l
{
"steam": {
"name": "steam",
"location": "C:\\Program Files (x86)\\Steam"
},
"test": {
"name": "test",
"location": "test"
},
"fessseffes": {
"name": "test",
"location": "test2"
},
"dacdd": {
"name": "dacdd",
"location": "test"
}
}
我想对每个对象进行交互“steam、test、fessseffes、dacdd”我找到的唯一方法是使用.get(“steam”),但这没有帮助,因为我想对所有对象进行交互并使用它们创建java对象。您可以使用第三方libs。 示例:com.google.gson.JsonObject::entrySet() 或者org.json.simple.JSONObject:JSONObject是一个HashMap。请您参考 以下代码暂时有效 Jackson和Gson的示例程序(在POJOs的帮助下) Dacdd.class
class Dacdd{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Dacdd{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
class Fessseffes{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Fessseffes{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
public class Steam{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Steam{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
public class Test{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Test{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
public class Root {
public Steam steam;
public Test test;
public Fessseffes fessseffes;
public Dacdd dacdd;
public Steam getSteam() {
return steam;
}
public void setSteam(Steam steam) {
this.steam = steam;
}
@Override
public String toString() {
return "Root{" +
"steam=" + steam +
", test=" + test +
", fessseffes=" + fessseffes +
", dacdd=" + dacdd +
'}';
}
}
Fessseffes.class
class Dacdd{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Dacdd{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
class Fessseffes{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Fessseffes{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
public class Steam{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Steam{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
public class Test{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Test{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
public class Root {
public Steam steam;
public Test test;
public Fessseffes fessseffes;
public Dacdd dacdd;
public Steam getSteam() {
return steam;
}
public void setSteam(Steam steam) {
this.steam = steam;
}
@Override
public String toString() {
return "Root{" +
"steam=" + steam +
", test=" + test +
", fessseffes=" + fessseffes +
", dacdd=" + dacdd +
'}';
}
}
Steam.class
class Dacdd{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Dacdd{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
class Fessseffes{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Fessseffes{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
public class Steam{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Steam{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
public class Test{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Test{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
public class Root {
public Steam steam;
public Test test;
public Fessseffes fessseffes;
public Dacdd dacdd;
public Steam getSteam() {
return steam;
}
public void setSteam(Steam steam) {
this.steam = steam;
}
@Override
public String toString() {
return "Root{" +
"steam=" + steam +
", test=" + test +
", fessseffes=" + fessseffes +
", dacdd=" + dacdd +
'}';
}
}
测试类
class Dacdd{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Dacdd{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
class Fessseffes{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Fessseffes{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
public class Steam{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Steam{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
public class Test{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Test{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
public class Root {
public Steam steam;
public Test test;
public Fessseffes fessseffes;
public Dacdd dacdd;
public Steam getSteam() {
return steam;
}
public void setSteam(Steam steam) {
this.steam = steam;
}
@Override
public String toString() {
return "Root{" +
"steam=" + steam +
", test=" + test +
", fessseffes=" + fessseffes +
", dacdd=" + dacdd +
'}';
}
}
Root.class
class Dacdd{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Dacdd{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
class Fessseffes{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Fessseffes{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
public class Steam{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Steam{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
public class Test{
public String name;
public String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Test{" +
"name='" + name + '\'' +
", location='" + location + '\'' +
'}';
}
}
public class Root {
public Steam steam;
public Test test;
public Fessseffes fessseffes;
public Dacdd dacdd;
public Steam getSteam() {
return steam;
}
public void setSteam(Steam steam) {
this.steam = steam;
}
@Override
public String toString() {
return "Root{" +
"steam=" + steam +
", test=" + test +
", fessseffes=" + fessseffes +
", dacdd=" + dacdd +
'}';
}
}
data.json
{
"steam": {
"name": "steam",
"location": "C:\\Program Files (x86)\\Steam"
},
"test": {
"name": "test",
"location": "test"
},
"fessseffes": {
"name": "test",
"location": "test2"
},
"dacdd": {
"name": "dacdd",
"location": "test"
}
}
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
public class Main {
public static void main(String[]args) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
Root car = objectMapper.readValue(new FileReader("src/data.json"), Root.class);
System.out.println(car);
System.out.println(car.dacdd.name);
System.out.println(car.steam.name);
System.out.println(car.fessseffes.name);
System.out.println(car.test.name);
System.out.println(car.dacdd.location);
System.out.println(car.steam.location);
System.out.println(car.fessseffes.location);
System.out.println(car.test.location);
}
}
import com.google.gson.Gson;
import java.io.IOException;
public class Main {
public static void main(String[]args) throws IOException {
Root car = new Gson().fromJson(new JsonReader(new FileReader("src/data.json")), Root.class);
System.out.println(car);
System.out.println(car.dacdd.name);
System.out.println(car.steam.name);
System.out.println(car.fessseffes.name);
System.out.println(car.test.name);
System.out.println(car.dacdd.location);
System.out.println(car.steam.location);
System.out.println(car.fessseffes.location);
System.out.println(car.test.location);
}
}
Main.class(使用Jackson)
主类(使用Gson)
输出:
Root{steam=Steam{name='steam', location='C:\Program Files (x86)\Steam'}, test=Test{name='test', location='test'}, fessseffes=Fessseffes{name='test', location='test2'}, dacdd=Dacdd{name='dacdd', location='test'}}
dacdd
steam
test
test
test
C:\Program Files (x86)\Steam
test2
test
我使用gson而不是json简单库。那个密码成功了
try {
// create Gson instance
Gson gson = new Gson();
// create a reader
JsonReader reader = new JsonReader(new FileReader("src/data.json"));
// convert JSON file to map
Map<?, ?> map = gson.fromJson(reader, Map.class);
for (Map.Entry<?, ?> entry : map.entrySet()) {
Map<?, ?> mapi = (Map)entry.getValue();
for (Map.Entry<?, ?> entryi : mapi.entrySet()) {
System.out.println(entryi.getKey() + "=" + entryi.getValue());
}
}
// close reader
reader.close();
} catch (Exception ex) {
```
试试看{
//创建Gson实例
Gson Gson=新的Gson();
//创建一个阅读器
JsonReader=newjsonreader(newfilereader(“src/data.json”);
//将JSON文件转换为映射
Map Map=gson.fromJson(reader,Map.class);
对于(Map.Entry:Map.entrySet()){
Map mapi=(Map)entry.getValue();
对于(Map.Entry entryi:mapi.entrySet()){
System.out.println(entryi.getKey()+“=”+entryi.getValue());
}
}
//近距离阅读
reader.close();
}捕获(例外情况除外){
```
那没用。因为json不是静态的。我现在尝试Gson,成功率更高。