2015-04-28 5 views
5

Chcę reprezentować this file w moim programie java.reprezentują plik JSON w programie java do kwerendy wartości według klucza

Co chcę zrobić, to szybko przeszukać za pomocą "klucza" wartość, więc na przykład, z wartością P26 Chciałbym zwrócić spouse.

Może mogę go przeczytać jako HashMap używając programu gson tak jak w przypadku programu this.

Ale co zrobić z tym wonky strukturze:

{ 
    "properties": { 
     "P6": "head of government", 
     "P7": "brother", 
     ... 

Jak mogłem zmieścić że dobrze w HashMap? Czy HashMap jest najlepszym wyborem?


mam rodzaj uproszczone go do tego:

{ 
    "P6": "head of government", 
    "P7": "brother", 
    "P9": "sister", 
    "P10": "video", 
    "P14": "highway marker", 
    "P15": "road map", 
    "P16": "highway system", 
    "P17": "country", 
    "P18": "image", 

Próbowałem użyć tego kodu, ale wyprowadza null

/* 
* P values file 
*/ 
String jsonTxt_P = null; 

File P_Value_file = new File("properties-es.json"); 
//read in the P values 
if (P_Value_file.exists()) 
{ 
    InputStream is = new FileInputStream("properties-es.json"); 
    jsonTxt_P = IOUtils.toString(is); 
} 

Gson gson = new Gson(); 
Type stringStringMap = new TypeToken<Map<String, String>>(){}.getType(); 
     Map<String,String> map = gson.fromJson(jsonTxt_P, stringStringMap); 
     System.out.println(map); 
+0

dlaczego nie korzystać z właściwości wbudowanej funkcji java? zapoznaj się z http://www.tutorialspoint.com/java/java_properties_class.htm – BlackPOP

Odpowiedz

1

to nie działa, ponieważ ten plik nie jest plikiem Map<String, String>. ma element właściwości, który zawiera mapowanie i brakujący element, który zawiera tablicę. To niedopasowanie spowoduje, że Json zwróci wartość null, czyli to, co widzisz. Zamiast tego, spróbuj to zrobić:

public class MyData { 
    Map<String, String> properties; 
    List<String> missing; 
} 

a następnie deserializować, zrobić:

MyData data = gson.fromJson(jsonTxt_P, MyData.class); 
Map<String, String> stringStringMap = data.properties; 

To sprawi, że struktura danych dopasować strukturę json i pozwalają json prawidłowo deserializowania.

Powiązane problemy