Maison > Questions et réponses > le corps du texte
List<HashMap> reList = new ArrayList<HashMap>();
for(int i=0;i<bjdList.size();i++){
Zqwl_yd_jdxx bjd = bjdList.get(i);
HashMap temp = new HashMap();
temp.put("id",bjd.getId());
temp.put("yd_number",bjd.getYd_number());
temp.put("status",bjd.getStatus());
reList.add(temp);
}
str = JSONValue.toJSONString(reList);
response.getWriter().write(str);
我写后台的接口,ios的程序员说必须标注每一个值得类型(string int 。。。)Android的程序员就不用?转正json返回之后不都是字符串了吗?为什么还要标注出int类型?
ringa_lee2017-04-18 09:17:18
Comme il s'agit d'un accord, il doit être convenu par les deux parties. Il est préférable d'avoir un document d'interface. Bien que json ne soit qu'une chaîne, les valeurs qu'il contient ont des types différents. n'a pas besoin de le marquer, c'est peut-être simplement parce qu'il pense pouvoir vous comprendre. Le type de données json (mais ce n'est pas nécessairement le type de données que votre backend voulait initialement fournir. Par exemple, si vous fournissez un type float. , il utilise double pour l'obtenir. Il n'y a pas de différence pour les valeurs qui ne nécessitent pas une grande précision), et iOS voudra peut-être penser clairement, il veut déterminer le type de valeur exact, et il doit le faire. unifiez-le pour le moment, sinon vous ne pourrez pas savoir s'il y aura un problème à l'avenir.
PHPz2017-04-18 09:17:18
json n'est qu'une chaîne.
Non, il n'y a pas de problème de ce type lorsque je me connecte aux programmeurs iOS.
伊谢尔伦2017-04-18 09:17:18
Je pense que c’est bien que vous le marquiez.
J'ai rencontré des problèmes avec NSNumber et NSString qui ont provoqué le crash du programme
黄舟2017-04-18 09:17:18
En fait, JSON a un type. Le "" développé est une chaîne. "value": "1" et "value": 1 sont différents
Bien sûr, IOS dit qu'il doit être marqué, mais il le fait. Je ne veux pas m'en occuper. Il espère que l'arrière-plan pourra le gérer et l'utiliser directement. Android le gère simplement pour vous.
Peu importe qui a raison ou tort, mais qui est prêt à faire plus.
怪我咯2017-04-18 09:17:18
Le cœur de ce problème est de comprendre avec précision la définition du format JSON
Caractères de contrôle dans JSON
{Le début d'un conteneur de paire clé-valeur (une collection de paires nom/valeur)
} Clé- Fin du conteneur de paire de valeurs
[Début du conteneur de tableau
] Fin du conteneur de tableau
: Délimiteur de paire clé-valeur
" Début ou fin de chaîne
, délimiteur à l'intérieur du conteneur
Le type de valeur dans JSON
string est la partie entre deux guillemets doubles. Le texte original du site officiel est une collection de n'importe quel nombre de caractères Unicode entourés de guillemets doubles. Un caractère est un caractère distinct. La chaîne est représentée dans OC comme un objet NSString
numéro commençant par le caractère « 0 » ou « 9 ». Le site officiel d'origine exclut les formats octal et hexadécimal inutilisés et est représenté dans OC comme un objet NSNumber. type d'objet, exprimé en OC sous la forme NSDictionary
une liste ordonnée de valeurs (Une liste ordonnée de valeurs), communément appelée tableau, exprimé en OC sous la forme NSArray
null objet nul, objet vide, Les performances en OC est NSNull
bool true/false Puisqu'il n'y a pas d'objet booléen dans OC, la performance dans OC est NSNumber
.
http://cocoa1024.com/2016/03/31/stackjson/
天蓬老师2017-04-18 09:17:18
Json n'est qu'un format. Vous pouvez le traiter comme une chaîne lors de sa réception, mais lors de l'analyse, la valeur est saisie
伊谢尔伦2017-04-18 09:17:18
Qu'en est-il du document oia ? Si vous n'avez pas oia, il doit au moins avoir un schéma json
高洛峰2017-04-18 09:17:18
Pas besoin, la carte peut également être analysée directement
{"aaa,bbb";"aaa,bbb"}
ArrayMap arrayMap = new ArrayMap();
try {
org.json.JSONObject obj = new org.json.JSONObject(content);
Iterator<String> iterator = obj.keys();
while (iterator.hasNext()) {
String key = iterator.next();
String value = (String) obj.get(key);
arrayMap.put(key, value);
}
} catch (JSONException e) {
e.printStackTrace();
}