我有一个带有一个下拉项的自定义portlet。此外,我还有一个products.json文件。
我的需求
下拉列表显示产品,当用户单击产品时,相应的详细信息将从json文件中获取并显示。
我该怎么做?
{
"products" : [
{
"id":"prod_1001",
"name":" iPhone 6",
"type":"Mobile",
"asset_tag":"<asset_tag>",
"serial_no":"34238941",
"cost_center":"",
"cpu_count":"2",
"cpu_socket":"8",
"cpu_name":"Intel",
"cpu_type":"core",
"cpu_speed_mhz":"2200",
"disk_gb":"64",
"ram_mb":"2048",
"first_discoverd_date":"",
"recent_discovery_date":"",
"service_start_date":"",
"warrent_expiry_date":"",
"ip_address":"10.10.10.1",
"lease_contract":"",
"lease_start_date":"",
"lease_end_date":"",
"location":"India",
"sku":"IPHONE-6",
"cost":"500",
"currency":"$",
"cpu":"",
"power_supply":"12v",
"hard_drive":"1",
"memory":[
{
"memory_type":"ram",
"sku":"RAM-4GB"
},
{
"memory_type":"Internal",
"sku":"INTERNAL-128GB"
}
],
"warranty_expiration":"",
"gps_location":"India",
"network_domain":"domain",
"network_segment":"segment",
"group":"Product",
"company":"Apple"
},
{
"id":"prod_1005",
"name":"Nokia",
"type":"Mobile",
"asset_tag":"<asset_tag>",
"serial_no":"34238941",
"cost_center":"",
"cpu_count":"2",
"cpu_socket":"8",
"cpu_name":"Intel",
"cpu_type":"core",
"cpu_speed_mhz":"2200",
"disk_gb":"32",
"ram_mb":"2048",
"first_discoverd_date":"",
"recent_discovery_date":"",
"service_start_date":"",
"warrent_expiry_date":"",
"ip_address":"10.10.10.1",
"lease_contract":"",
"lease_start_date":"",
"lease_end_date":"",
"location":"India",
"sku":"IPHONE-6",
"cost":"500",
"currency":"$",
"cpu":"",
"power_supply":"12v",
"hard_drive":"1",
"memory":[
{
"memory_type":"ram",
"sku":"RAM-4GB"
},
{
"memory_type":"Internal",
"sku":"INTERNAL-128GB"
}
],
"warranty_expiration":"",
"gps_location":"India",
"network_domain":"domain",
"network_segment":"segment",
"group":"Product",
"company":"Microsoft"
},发布于 2016-05-02 07:30:12
您可以使用许多JSON库,如可用的这里
您可以使用它们将JSON字符串转换为JSONObjects,并使用那些对象中定义的访问器方法来解析JSON数据
发布于 2016-05-02 08:31:22
也可以试试Gson 李布雷
你有两个选择:
List<Product> list = gson.fromJson(json, new TypeToken<List<Product>)(){}.getType());
或
Map<String, Object> map = gson.fromJson(json, new TypeToken<Map<String, Object>>(){}.getType());https://stackoverflow.com/questions/36977066
复制相似问题