PHP バックエンドが正規の JSON データを返すのは難しいですか?

WBOY
リリース: 2016-06-17 08:32:45
オリジナル
1219 人が閲覧しました

私は iOS プログラマーですが、PHP プログラマーと一緒に仕事をしたことはありません。現在の PHP プログラマーが私に投げかけてくる質問の多さにショックを受けています。しかし、私が以前に一緒に仕事をしたことがある他の言語のプログラマーには、こうした問題はありませんでした。自分では言えないので皆さんにアドバイスをお願いします。

  • PHP は弱い型指定言語であり、PHP がデータベースから取得するデータはすべて文字列であるため、返される JSON は int/float/map に関係なく文字列型になります。正しい型に変換するのは面倒で、パフォーマンスに影響します。 PHP は型付けが弱い言語であるため、正しい形式を保証することが困難です。
    • 私はこれに同意しません。Java/Ruby には、これらの問題を解決するための成熟した ORM フレームワークが存在します。PHP でこれらの問題を解決するのは難しいとは思いません。 laravel.com/docs/4.2/el ただし、
    は必要ありません。PHP には Array のみがあり、Map 型がないため、返された JSON に空の Array と Map が含まれている場合、空の Array になります。それから、パフォーマンスと開発効率について話してください。

    • これは本当に対処するのが難しいですか?さらに、バックエンドが値のないキーを削除することは非常に困難です。
    API のフィールド名はデータベースのフィールドに厳密にバインドする必要があります。そうしないと、非常に面倒になり、頻繁に変更する必要があります。

    • 事前に十分に設計してから変更することはできないでしょうか?彼らはそれを検査せずに私に引き渡し、私に人肉検査官になるように頼みました。これは本当に適切ですか?
    Facebook の API ではこのような問題は発生しません。現時点では、PHP がこれらをどのように処理するかについては気にしたくありません。ただ静かに目を引く UI とクールなアニメーションを作りたいだけです。

PHP で正規の JSON データを返すのは本当に難しいですか?それともバックエンドの個人的な問題でしょうか?
それは私のものです、私は拒否しません。最後に、私よりもはるかに年上の PHP プログラマーにはどのように対処すればよいでしょうか?

興味関連、現 iOS プログラマー、元 PL/SQL プログラマー、元 Ruby プログラマー。
返信内容:

はっきりと言えます。これはバックエンドの個人的な問題です。 1. json で表現できる型: string、number、object、array、bool、null。

json 形式自体は int と float を区別できません。

2. PHP は配列を非常に強力にサポートしています。PHP の配列は区別なくマップとして使用されます。
json の空の {} はかなり複雑です。new stdClass() または (object)array() または (object)null を使用できます

3、構成に関する規則は次のとおりです

同僚とよくコミュニケーションをとりましょう。協力なのでお互いに配慮しましょう。

「誰の責任」に時間を無駄にする必要はありません。

相手が本当に通信できない場合は、上記の対応をしてください。

個人的な感情が仕事の進捗に影響を与えないようにしてください。 。 PHPer として、私もクライアントに質問しましたが、標準の json 形式を使用するのは複雑ですか?すべてに文字列を使用する必要がありますか?
つまり、これは人間の問題なのです。

1. パフォーマンスに影響を与えるのはナンセンスです
2. 値の種類に応じて、空の配列には []、値のないキーを使用します
3. API をリリースしたからといって、安易に名前を変更するのは間違いです。

年上の同僚と仲良くするのは特別なことではありませんが、私は普段から彼らを尊重し、仕事では協力しないようにしています。自分。 質問者さん、これを見てください
PHP 言語の JSON
を使用して生成された json は型を持つことができます。 言語に関係なく、生成された json は文字列の形式でフロントエンドに送信されます。ここでは json2str(fake_json) のように記述する必要があります。ここでは、fake_json を json2str によって適用するだけです。

これは、PHP や他の言語の内部データ構造とは何の関係もありません。
それは、一部の言語がそれを内部的に実装し、一部の言語が内部的に実装していないというだけです。たとえ政府がやらなくても、普及言語である以上、それを行う第三者が存在するはずだ。 私は Android で作業していますが、PHP を理解していません。バックエンドの同僚は Java を理解していません。たとえば、渡されたパラメータが矛盾していて、返されるデータの構造が異なる場合です。フィールド res は、オブジェクトを返すように定義されています。{"name":"Zhang San"}、他のパラメータを渡すと、この res はリストに対応する可能性があるため、例外をキャッチすることで Android の終了が異常になります。これには例外は使用されません。個人的には、最初に定義する必要があり、後で型を変更するべきではないと思います。この状況にどう対処すればよいかわかりません。
    データを処理していますが、それがどのようなタイプであるかを知るためにインターフェースに依存する必要がありますか?サーバーがなく、sqlite などのローカル データベースを使用してローカルに保存する場合、sqlite には型がありません。誰に型を問い合わせますか?
  • 価値のないキー、無視して続行すれば電力の無駄になりますか?
  • 「API フィールド名はデータベース フィールドに厳密にバインドする必要があります。」 API フィールドとデータベース フィールドが一貫していれば、異なる名前を持つ 2 つのフィールドが実際には互いに対応していることがわかります。確かに、半年も経つとすべて忘れてしまうかもしれませんし、メンテナンスを引き継ぐ人も多大なエネルギーを費やす必要があるかもしれません。そのため、既存の名前付けルールに従うことに文句はありません。人間によるテストと API フィールドの関係がわかりません。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート