を役に立てば幸い:
String keyName = null;
for(Iterator<String> iter = jsonData.keys(); iter.hasNext();) {
String key = iter.next();
if (key.equalsIgnoreCase(jsonVar)) {
keyName = key;
break;
}
}
jsonData.get(keyName);
明らかにあなたがgetメソッドの他のタイプに「取得()」を変更することができます
私はあなたのためにエラーを処理するそれぞれのタイプに使用するコアメソッドを持っています。あなたが作ったタイプのすべてを持っていたら
public static String getJSONString(JSONObject jsonData, String jsonVar) {
// start with a blank name
String keyName = null;
// loop through they keys to find the correct spelling
for(Iterator<String> iter = jsonData.keys(); iter.hasNext();) {
String key = iter.next();
if (key.equalsIgnoreCase(jsonVar)) {
keyName = key;
break;
}
}
// if the key isn't found, return a null
if (keyName == null) {
return keyName;
}
// need a try/catch around JSON stuff as the variable could be the wrong type or not exist
try {
return jsonData.getString(keyName);
}
catch (Exception e) {
// log the variable & the error
Log.w("getJSONString", "failed to getJSONstring "+jsonVar+" - "+e.toString());
// return an empty string because the "get" failed
return "";
}
}
は、それはそれが簡単に空白または欠損値に
を扱うようになり、私はこれが誰かの役に立てば幸い:)
私はこのソリューションについても考えたが、それはありません合っているもの。すべての情報が小文字に変換されるため、値にある情報も小文字に変換されるためです。しかし、もし私がそれらを変換することを許可されていないのですか? – Tima
このキーが存在しない場合、forexamplekeyofmyappは唯一の解決策です。そうでない場合は、exampleKeyOfMyAppを確認してください。可能であれば、より多くの組み合わせを確認してください。 –
私はそれについても考えました。しかしそれはすべてを複雑すぎるものにするでしょう。しかし、あなたの提案に感謝 – Tima