2017-07-26 40 views
0

我想要的是维护JSON密钥顺序。我从服务器获取JSON,并将其转换为NSMutableDictionary,但它改变了顺序,但它应该与JSON的顺序相同。如果我更改服务器中对应用程序有影响的键顺序。设置与json相同的密钥顺序ios

这里是我转换JSON到NSMutableDictionary代码:即来自服务器

NSMutableDictionary *json = [NSJSONSerialization JSONObjectWithData:datas 
    options:0 error:nil]; 

这里是JSON:

{ 
    "data": { 
     "Vehicle body/inside vehicle": [ 

     ], 
     "Tranmission": [ 

     ], 
     "Brakes": [ 

     ], 
     "Steering": [ 

     ], 
     "Engine checks/under bonnet": [ 

     ] 
    }, 
} 

,但之后将其转换词典将其更改它以升序排序。

+0

这样做是由于这样的事实,'NSDictionary'作为哈希表来实现,它没有特定的顺序。这是没有的。 –

+0

字典是无序的集合类型。我在一小时前的另一个问题中写了这条评论:*如果某个命令是强制性的,则字典是错误的集合类型。* – vadian

+0

是的,我在数组中添加了alos。但它是一样的。 –

回答

0

这里

var data: String() 
    func convertToDictionary(text:String)-> Any?{ 
    if let data = text.data(using: .utf8){ 
     do{ 
      return try JSONSerialization.jsonObject(with: jsondata, options: []) as? Any 
     } catch{ 
      print(error.localizedDescription) 
     } 
    } 
    return nil 
} 


    if let jsonlist = self.convertToDictionary (text: data) as? [AnyObject]{ 

     for i in jsonlist as! [[String: AnyObject]]{ 
      data = I["data"] as! String 
      print(data) 
      } 
     } 

发送JSON数据我这样

+0

我的代码是在objective-c –

+0

这段代码根本不涉及到这个问题。 – vadian