JSON(JavaScriptオブジェクト表示法)
3616 ワード
JSON
一、概念
JavaScript Object Notationは、JavaScriptオブジェクト表現法を意味し、情報を格納し交換するデータフォーマットであり、xmlより小さく、より速く、より解析しやすいです.
二、文法
1.基本ルールデータはキーパッドのペアにあり、データはキーパッドのペアから表示されます. キー:キーは引用符を使ってもいいし、引用符を使わなくてもいいです. 値:取得値は、次のようにすることができます. 数字(整数、浮動小数点)は直接 と書きます.文字列(引用符) 論理値(true or false) 配列(大かっこ内) オブジェクト(jsonオブジェクト、括弧内) null データはカンマ区切り です.かっこ保存オブジェクト 四角括弧保存配列 2.データの取得 jsonオブジェクト.キー名 jsonオブジェクト["キー":引用符があることに注意してください. 配列オブジェクト[インデックス] 三、JSONとjavaオブジェクトの変換
JSON解析器:Jsonilib、Gson、fastjson、Jackson
1.javaオブジェクトをJSONに変更する Jacksonの関連jarパッケージを導入する JacksonコアオブジェクトObject Mapperを作成します. writeValue(パラメータ、obj):パラメータの取得値 File:Objオブジェクトをjson文字列に変換し、指定されたファイル に保存する. Writer:Objオブジェクトをjson文字列に変換し、指定された文字出力ストリーム に充填する. OutputStream:Objオブジェクトをjson文字列に変換し、指定されたバイト出力ストリーム に充填する.
writeValue AsString(obj):javaオブジェクトをjson文字列 に変換する.
Object Mapperの関連方法を呼び出して変換する コメント:Javaオブジェクトにあるメンバー変数がDateタイプの場合、直接JSONに変換して得られた値がミリ秒の値であれば、注釈を用いてこの問題を解決できます.定義されたクラスのメンバー変数にこの2つの注釈を追加します. @Jsonignore:JSONに移行する際にこのキーの値を考慮しないということを示す @JsonFormat:JSONに変換する際に指定されたフォーマットに変えることができるという意味を表しています.
複雑なjavaオブジェクト: List:行列に変換:[] Map:JSONオブジェクトに変換する:{} 2.JSONはjavaオブジェクトに変わります. JacksonコアオブジェクトObject Mapper を作成します. Object MapperオブジェクトがreadValueを呼び出す方法:readValue(json文字列データ、Class) 四、Demo:ユーザ名が存在するかどうかのチェック
実現ロジック:ユーザ名が入力されたテキストボックスがフォーカスを失うと、非同期要求 がサーバに送信される.サーバ端は要求を受信し、データベースを照会し、結果を文字入力ストリーム に塗りつぶす.
クライアント: get/post要求にデータフォーマット「json」を指定する 、サービス端末でコード、フォーマット を指定します.
転載先:https://www.cnblogs.com/zhuobo/p/10854411.html
一、概念
JavaScript Object Notationは、JavaScriptオブジェクト表現法を意味し、情報を格納し交換するデータフォーマットであり、xmlより小さく、より速く、より解析しやすいです.
二、文法
1.基本ルール
for(key in person) {
alert(key + " : " + person[key]);
}
JSON解析器:Jsonilib、Gson、fastjson、Jackson
1.javaオブジェクトをJSONに変更する
Person person = new Person("David", 18, " ");
ObjectMapper mapper = new ObjectMapper();
String json_person = mapper.writeValueAsString(person);
mapper.writeValue(new File("d://a.txt"), person);
String json = "{\"name\":\"david\",\"age\":18,\"gender\":\" \"}";// 、
ObjectMapper mapper = new ObjectMapper();
Person person = mapper.readValue(json, Person.class);
実現ロジック:
クライアント:
$("#username").blur(function () {
var username = $(this).val();
$.get("findUsernameServlet", {username:username}, function (data) {// data
var span = $("#span_username");
if (data.userExist) {
span.css("color", "red");
span.html(data.msg);
} else {
span.css("color", "green");
span.html(data.msg);
}
}, "json");// json
});
サービス:response.setContentType("text/html;charset=utf-8");
String username = request.getParameter("username");
Map map = new HashMap();
if ("cat".equals(username)) {
// ,
map.put("userExist", true);
map.put("msg", " ");
} else {
//
map.put("userExist", false);
map.put("msg", " ");
}
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(response.getWriter(), map);
注意:サーバー書き込みのデータをJSONとして処理する必要があります.response.setContentType("application/json;charset=utf-8");
転載先:https://www.cnblogs.com/zhuobo/p/10854411.html