android - Java后台把数据用json发到手机端,里面是map存放的,必须要说明数据的类型?
PHPz
PHPz 2017-04-18 09:15:18
0
9
387
               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类型?

PHPz
PHPz

学习是最好的投资!

全員に返信(9)
左手右手慢动作

これは合意であるため、双方の合意が必要です。json は単なる文字列ですが、その中の値にはさまざまな型があります。彼がそれをマークする必要がないのは、おそらく彼があなたを理解できると考えているからです (ただし、それは必ずしもバックエンドが元々提供しようとしていたデータ型であるとは限りません。たとえば、あなたがfloat 型の場合、それを取得するために double を使用します。高精度を必要としない値には違いはありません)、iOS はより厳密に、正確な値の型を決定したいと考えている可能性があります。現時点でそれを統一しなければなりません。そうしないと、将来問題が発生するかどうかを判断できなくなります。

いいねを押す +0
PHPzhong

json は単なる文字列です。
iOS プログラマーと接続するときは、このような問題は発生しませんでした。

いいねを押す +0
Peter_Zhu

~

をマークする必要はありません
いいねを押す +0
伊谢尔伦

マークを付けるのが正しいと思います。
NSNumber と NSString でプログラムがクラッシュする問題が発生しました

いいねを押す +0
黄舟

実際には、JSON には型があります。展開された "" は文字列です。
もちろん、IOS はマークする必要があると言っていますが、彼はマークしません。彼は、バックグラウンドでそれを処理し、Android が直接処理できることを望んでいます。

誰が正しいか間違っているかは問題ではなく、誰がより多くのことを行う意欲があるかです。

いいねを押す +0
刘奇

この問題の核心は、JSON 形式の定義を正確に理解することです
JSON の制御文字
{キーと値のペアのコンテナーの始まり (名前と値のペアのコレクション)
} Key- 値ペアのコンテナの終了
[配列コンテナの開始
] 配列コンテナの終了
: キーと値のペアの区切り文字
" 文字列
の開始または終了、コンテナ内の区切り文字
JSON
文字列の値の型は、2 つの二重引用符で囲まれた部分です。公式 Web サイトの元のテキストは、二重引用符で囲まれた任意の数の Unicode 文字の集合です。文字列は、OC では文字「0」または「9」で始まる NSString オブジェクト
number として表されます。元の公式 Web サイトでは、未使用の 8 進数および 16 進数形式が除外され、OC では
オブジェクトとして表されます。オブジェクト タイプ、OC では NSDictionary
として表現される値の順序付きリスト (値の順序付きリスト)、一般に配列として知られ、OC では NSArray
として表現されます。 null null オブジェクト、空のオブジェクト、OC でのパフォーマンスNSNull
bool true/false です。OC にはブール値オブジェクトがないため、OC でのパフォーマンスは NSNumber

です。

私のポッドキャストをご覧いただけます
http://cocoa1024.com/2016/03/31/stackjson/

いいねを押す +0
Peter_Zhu

Json は単なる形式です。受信時には文字列として扱うことができますが、解析時には値が型付けされます。

いいねを押す +0
伊谢尔伦

oia ドキュメントはどうですか? oia がない場合、少なくとも json スキーマが必要です

いいねを押す +0
小葫芦

その必要はありません。マップは直接解析することもできます

{"aaa,bbb";"aaa,bbb"}

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート