質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

2282閲覧

APIにパラメータを複数渡す時カンマ区切りで送りたい

ryuji_sato

総合スコア0

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/05/14 06:58

編集2020/05/14 06:59

前提・実現したいこと

Retrofitを利用してパラメータを複数渡す時にデフォルトが&になってるのでカンマに置き換えたい
ただし置き換えたいのは一部分のみで他の&は残したままにしたい

発生している問題・エラーメッセージ

Variable expected

該当のソースコード

Kotlin

1override fun getEventonEvent(keyword: List<String>, ymdBetween: List<Int>) { 2 val createApi: EventonApi.Companion.EventonSearchEventApi = Api.eventonSearchEvent() 3 createApi.searchEventon(ymdBetween, 1, "started_at_desc", keyword, 5) 4 .enqueue(object : Callback<EventonEvent> { 5 override fun onResponse( 6 call: Call<EventonEvent>, 7 response: Response<EventonEvent> 8 ) { 9 val request = response.raw().request().url().toString() 10 .replace("&ymd_between=".toRegex(), ",") 11response.raw().request().url() = HttpUrl.parse(request) 12 if (response.isSuccessful) { 13 val themeItem = response.body() 14 if (themeItem != null) { 15 if (themeItem.events.isEmpty()) { 16 view.nullCheck() 17 } else { 18 eventList.clear() 19 start = 6 20 themeItem?.events?.forEach { 21 var event = Event(it) 22 eventList.add(event) 23 } 24 view.initialize(eventList) 25 } 26 } 27 } 28 } 29 30 override fun onFailure(call: Call<EventonEvent>, t: Throwable) { 31 } 32 }) 33 }

試したこと

検索方法を範囲ではなく日付をループするようにしたが検索結果が異なっていました
GETの中にStringでurlを書いて検索要素だけを渡すようにしたが動的に代入する事は不可能だと怒られたのでやめました
このコードで置換はできてるので代入する方法もしくはこれをそのまま使えるようなやり方が知りたいです

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

convert

1 2 override fun toString(): String { 3 return String.format("%d,%d",startYmd,endYmd) 4 }

invoke

1@Query("ymd_between") ymdBetween: YmdBetween

insert

1YmdBetween(ymdBetween)

変換用の別クラスを作ってあげてクエリに渡す際にこのクラスを間に挟んであげることで間にカンマを入れました

投稿2020/05/14 08:36

ryuji_sato

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問