キー値でのplist(辞書の配列)をソートする簡単な方法はありますか?
-
21-08-2019 - |
質問
Iキー値でのplist(dictonariesの配列)を並べ替える必要があります。
この例のコンテンツでは、私は、キー名の値で注文したいと思います(マット、ジョー):
<dict>
<key>Name</key>
<string>Matt</string>
<key>Details</key>
<string>Me</string>
</dict>
<dict>
<key>Name</key>
<string>Joe</string>
<key>Details</key>
<string>You</string>
</dict>
簡単な方法はありますか?私はちょうど、データファイルにそれをやってみたい、コードでアプリが実行されるたびにそれを行うにはしたくない。
任意のアイデア?
この成し遂げるために任意のツールを使用してハッピー:コマンドライン、のplistエディタ、テキストエディタまたは任意の並べ替えのために忍者のパラメータを
解決 5
私はそれらを並べ替えるために5つのラインPHPスクリプトを書くことになりました。私はまだ私はそれを迅速かつ快適に何かを行うことができます前に、学ぶためにココアがたくさんあると思います。
あなたの答えてくれてありがとう。
他のヒント
これは、別の符号化ソリューションですが、それに巻き付け、基本的なコマンドラインツールを作ることは難しいことではないでしょう。
NSArray* arrayOfDictionaries; //the array we want to sort
NSSortDescriptor* nameSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Name" ascending:YES];
NSArray* sortedArray = [arrayOfDictionaries sortedArrayUsingDescriptors:[NSArray arrayWithObject:nameSortDescriptor]];
[nameSortDescriptor release];
私は、標準入力から読み込み、標準出力に書き出し少しPythonスクリプトを書いてます:
# sortplist.py
import plistlib
import sys
plist = plistlib.readPlist(sys.stdin)
plistlib.writePlist(plist, sys.stdout)
それでは、python sortplist.py <original.plist >sorted.plist
を行います。
// Our key array
NSMutableArray *unsortedKeys = [NSMutableArray array];
// Assume we have some array of dictionaries
for( NSDictionary *dict in dictionaryArray ) {
NSString *key = [dict objectForKey:@"Name"];
if( key )
[unsortedKeys addObject:key];
}
NSArray *sortedKeys = [unsortedKeys sortedArrayUsingSelector:@selector(compare:)];
// Do things with the keys...
Pythonはあなたの友達です: http://effbot.org/zone/element-sort。 HTM の: - )
所属していません StackOverflow