如何从mongodb集合中保存Java对象查询中的数据

我的代码:

{
    "_id" : {
        "countryId" : 1,"countryName" : "Hong Kong"
    },"cities" : [
        {
            "cityId" : 1,"cityName" : "Hong Kong","sites" : [
                {
                    "siteId" : 1,"siteName" : "Kong Centre"
                }
            ]
        }
    ]
}

这是示例json。我正在一个项目中,我必须获得基于国家和城市的站点。我可以在我的java自定义对象中设置国家/地区ID和国家/地区名称,但无法获取“城市”和“站点”嵌入式数组。请协助。

iCMS 回答:如何从mongodb集合中保存Java对象查询中的数据

这是使用JSOnObject和JSONArray查找城市和站点数据的方法。

import java.io.FileReader;
import java.util.List;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;

public class JsonRead {

    public static void main(String args[]) {

        JSONParser parser = new JSONParser();

        try {
            Object obj = parser.parse(new FileReader("C:\\Users\\aq104e\\Desktop\\text.json"));
            JSONObject jsonObject = (JSONObject) obj;
            JSONArray jsonArrayOfCities = (JSONArray) jsonObject.get("cities");

            for (Object jsonObjectOfCities : jsonArrayOfCities) {
                JSONObject city = (JSONObject) jsonObjectOfCities;
                String cityid = String.valueOf(city.get("cityId"));

                JSONArray jsonArrayOfSites = (JSONArray) city.get("sites");

                for (Object jsonObjectOfSites : jsonArrayOfSites) {
                    JSONObject jsonLineItem = (JSONObject) jsonObjectOfSites;
                    String siteId = String.valueOf(jsonLineItem.get("siteId"));
                    String siteName = String.valueOf(jsonLineItem.get("siteName"));

                    System.out.println("site Id is " + siteId);

                    System.out.println("siteName is " +siteName);
                }
                String cityName = (String) city.get("cityName");

                System.out.println("City id -> " + cityid);
                System.out.println("city name is -> " + cityName);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
本文链接:https://www.f2er.com/2284306.html

大家都在问