検索

ホームページ  >  に質問  >  本文

android - Java后台把数据用json发到手机端,里面是map存放的,必须要说明数据的类型?

               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类型?

PHPzPHPz2893日前399

全員に返信(9)返信します

  • ringa_lee

    ringa_lee2017-04-18 09:17:18

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

    返事
    0
  • PHPz

    PHPz2017-04-18 09:17:18

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

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:17:18

    ~

    をマークする必要はありません

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:17:18

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

    返事
    0
  • 黄舟

    黄舟2017-04-18 09:17:18

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

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

    返事
    0
  • 怪我咯

    怪我咯2017-04-18 09:17:18

    この問題の核心は、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
  • 天蓬老师

    天蓬老师2017-04-18 09:17:18

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

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:17:18

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

    返事
    0
  • 高洛峰

    高洛峰2017-04-18 09:17:18

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

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

    リーリー

    返事
    0
  • キャンセル返事