0

このJSONを解析しようとすると問題が発生します。

{
    "bakso-roso-n'deso__-6.19_106.77":
    {"Latitude":"-6.185488","Longitude":"106.77366","Distance":"90.89210930799594"},
    "print-point-duri-kepa__-6.19_106.77":
    {"Latitude":"-6.18599544813468","Longitude":"106.772603988647","Distance":"118.9849339548274"},
    "apartment-menara-kebun-jeruk__-6.19_106.78":
    {"Latitude":"-6.18530376709007","Longitude":"106.775222279179","Distance":"247.8816947606767"},
    "ranch-market---pesanggrahan__-6.19_106.77":
    {"Latitude":"-6.18761306472002","Longitude":"106.77343661177","Distance":"294.4255786871916"}
}

問題は、「bakso-roso-n'deso__-6.19_106.77」を文字列として取得する方法です。タグはありません。

ありがとうございました。

Jsonを処理する通常の方法は次のようになります。

String jstring = "{\"menu\": {\"id\": \"file\", \"value\": \"File\",\"popup\": {\"menuitem\": [{\"value\": \"New\", \"onclick\": \"CreateNewDoc()\"},{\"value\": \"Open\", \"onclick\": \"OpenDoc()\"},{\"value\": \"Close\", \"onclick\": \"CloseDoc()\"}]}}}";
try
{
    jObject = new JSONObject(jstring);

このタイプのjsonに対してどのようにそれを行いますか?jstringはどうあるべきですか?

基本的に、これらのjson文字列を辞書に変換したいと思います。

4

3 に答える 3

3

plzはこの文字列をチェックします。これは有効なjson文字列ではありません。

 String jstring = "{\"menu\": {\"id\": \"file\", \"value\": \"File\",\"popup\": {\"menuitem\": [{\"value\": \"New\", \"onclick\": \"CreateNewDoc()\"},{\"value\": \"Open\", \"onclick\": \"OpenDoc()\"},{\"value\": \"Close\", \"onclick\": \"CloseDoc()\"}]}}}";

jsonが有効かどうかを確認してくださいhttp://jsonlint.com/

于 2012-06-07T11:07:26.467 に答える
2

実際には、あなた"bakso-roso-n'deso__-6.19_106.77"はタグ(キー?)自体です。

JSONObject jsonObject = new JSONObject(YOUR_RESPONSE_STRING);
Iterator<String> myIter = jsonObject.keys();
while(myIter.hasNext()){
  //here you can get all keys
}
于 2012-06-07T10:59:28.427 に答える
0

jObject.keys();を使用してキーのイテレータを取得できると思います。

あなたのコードに従って...

String jstring = "{\"menu\": {\"id\": \"file\", \"value\": \"File\",\"popup\": {\"menuitem\": [{\"value\": \"New\", \"onclick\": \"CreateNewDoc()\"},{\"value\": \"Open\", \"onclick\": \"OpenDoc()\"},{\"value\": \"Close\", \"onclick\": \"CloseDoc()\"}]}}}";


  try
      {
         jObject = new JSONObject(jstring);
         Map<String,String> map = new HashMap<String,String>();
         Iterator iter = jObject.keys();

         while(iter.hasNext()){
            String key = (String)iter.next();
            String value = menu.getString(key);
            map.put(key,value);
        }
    } catch(exception e){}

文字列と値のみを使用してJSONオブジェクトを解析します

于 2012-06-07T11:00:35.433 に答える