コンテンツへスキップ

こんばんは。とてぃです。

昨日と続きまして、仕事で躓いたor知ってそうで知らなかったことを書きたいと思います。

 

そもそもMavenプロジェクトとは


 開発環境を整えないでもソースをひとまずダウンロードしてもらい、ビルドを行うと動くようになる。便利なプロジェクトです。

なぜなら、Mavenプロジェクトにはpom.xmlで必要なプログラムを書いているためです。イメージとしましては、リモートサーバから必要なプログラムをビルド時にダウンロードしてくるからです。

 

注意

先ほど説明したpom.xmlでダウンロード先を間違えるとソースファイルが開けなくなります。そのため、誤ったpathを記述しないようにしましょう。


 

まとめ

理解していたつもりになっていたため記載しました。自分の周りにも何となく動くからいいやって言う人が多数いるので少しでも将来のことを考えて知識にしていきたい。

 

余談)

web系のシステムエンジニアでフレームワーク使ってると詳細のことを突っ込まれると答えられない人多いよねって多々言われてました。この言葉を聞いたら確かになって思いましたね。

 

話がそれましたが最後まで読んでいただきありがとうございました。

Javaで文字列比較できなかった原因は改行コードです。

こんにちは

RestAPIを扱った試験で、試験コードを作成していた時に発生した事象を書きたいと思います。

※【RestAPI】の詳細は別途記載したいと思います。

前提:レスポンスコード(Jsonデータ)が返ってきた想定


Jsonイメージは以下のようになります。

{

"山": [

{

"富士山" :  "知ってる"

}

]

}


objectMapperを使ってjson文字列に変換する

String jsonObject = mapper.writeValueAsString(object);

jsonObjectjsonイメージが入っている感じ。

この時にStrng型の文字列で比較すればいいやと、べた書きでこのように書きました。

例)String strComp = "{\n  山:[  \n          {\n     ";

この問題は空白ではないか。

調べてもわからず。json文字列をコンソールに出力しても全く同じでした。

【\n】で取得できると思っていましたが、【\r\n】でした。

ほかにいい方法がないか、検討したところ以下が使えるようです。

例) String strComp = "{" + System.lineSeparator() + " 山:[ " + System.lineSeparator + "以下省略}";

System.lineSeparator()

こちらは環境に合わせて改行コードを作成してくれるものです。

まとめ

MapperからString型に変換した場合、改行コードがどちらかが判断しづらいためSystem.lineSeparator()を使う

最後まで読んでいただきありがとうございました。