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

请检查此字符串,这不是有效的 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 回答