Собственно сам код:
класс активити MainActivity.java
package com.ocean_shop.myapplication;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import com.ocean_shop.myapplication.POJO.Message;
import java.io.IOException;
import okhttp3.Credentials;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.http.GET;
public class MainActivity extends AppCompatActivity {
public static String LOG_TAG = "my_log";
String username = "USER";
String password = "PASS";
public interface MessagesApi {
@GET("http://MYSERVER/ocean_shop/odata/standard.odata/AccumulationRegister_%D0%9F%D1%80%D0%BE%D0%B4%D0%B0%D0%B6%D0%B8/Turnovers(StartPeriod=datetime'2018-02-06',%20EndPeriod=datetime'2018-02-07')?$format=json;odata=nometadata")
//Call<S<Message>> getMetadata();
Call<Message.Value> getTurnover();
//Call<List<Message>> messages();
}
//http://77.34.10.185/ocean_shop/odata/standard.odata/
private String BASE_URL = "http://MYSERVER/ocean_shop/odata/standard.odata/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final OkHttpClient okHttpClient = new OkHttpClient().newBuilder().addInterceptor(new Interceptor() {
@Override
public okhttp3.Response intercept(Chain chain) throws IOException {
Request originalRequest = chain.request();
Request.Builder builder = originalRequest.newBuilder().
method("GET", originalRequest.body()).
header("Accept-Charset", "UTF-8").
header("Authorization", Credentials.basic(username, password));
Request newRequest = builder.build();
return chain.proceed(newRequest);
}
}).build();
Retrofit retrofit = new Retrofit.Builder().baseUrl("http://77.34.10.185/ocean_shop/odata/standard.odata/").
client(okHttpClient).
addConverterFactory(GsonConverterFactory.create()).
build();
MessagesApi messagesApi = retrofit.create(MessagesApi.class);
Call<Message.Value> messages = messagesApi.getTurnover();
messages.enqueue(new Callback<Message.Value>() {
@Override
public void onResponse(Call<Message.Value> call, Response<Message.Value> response) {
//log("response.headers() " + response.body());
if (response.isSuccessful()) {
log("result " + String.valueOf(response.body()));
} else {
log("Code " + response.code());
}
}
@Override
public void onFailure(Call<Message.Value> call, Throwable t) {
}
});
}
private void log(String s) {
Log.d(LOG_TAG, s);
}
}
класс pojo Message.java
package com.ocean_shop.myapplication.POJO;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
import java.util.List;
public class Message {
/*
@SerializedName("odata.metadata")
@Expose
private String metadata;
@SerializedName("value")
@Expose
private Map<String, ArrayList<Integer> > value;
public Message(String metadata, Map<String, ArrayList<Integer>> value){
this.metadata=metadata;
this.value=value;
}
public String getMetadata() {
return metadata;
}
public void setMetadata(String metadata) {
this.metadata = metadata;
}
public Map<String, ArrayList<Integer>> getValue() {
return value;
}
public void setValue(Map<String, ArrayList<Integer>> value) {
this.value = value;
}*/
@SerializedName("odata.metadata")
@Expose
private String odataMetadata;
@SerializedName("value")
@Expose
private List<Value> value = null;
public String getOdataMetadata(){
return odataMetadata;
}
public void setOdataMetadata(String odataMetadata) {
this.odataMetadata = odataMetadata;
}
public List<Value> getValue() {
return value;
}
public void setValue(List<Value> value){
this.value = value;
}
public class Value {
@SerializedName("Номенклатура_Key")
@Expose
public String номенклатураKey;
@SerializedName("ХарактеристикаНоменклатуры_Key")
@Expose
public String характеристикаНоменклатурыKey;
@SerializedName("ЗаказПокупателя")
@Expose
public String заказПокупателя;
@SerializedName("ЗаказПокупателя_Type")
@Expose
public String заказПокупателяType;
@SerializedName("ДоговорКонтрагента_Key")
@Expose
public String договорКонтрагентаKey;
@SerializedName("ДокументПродажи")
@Expose
public String документПродажи;
@SerializedName("ДокументПродажи_Type")
@Expose
public String документПродажиType;
@SerializedName("Подразделение_Key")
@Expose
public String подразделениеKey;
@SerializedName("Проект_Key")
@Expose
public String проектKey;
@SerializedName("Организация_Key")
@Expose
public String организацияKey;
@SerializedName("Контрагент_Key")
@Expose
public String контрагентKey;
@SerializedName("КоличествоTurnover")
@Expose
public int количествоTurnover;
/*@SerializedName("СтоимостьTurnover")
@Expose
public int стоимостьTurnover;*/
@SerializedName("СтоимостьTurnover")
@Expose
public int Turnover;
@SerializedName("СтоимостьБезСкидокTurnover")
@Expose
public int стоимостьБезСкидокTurnover;
@SerializedName("НДСTurnover")
@Expose
public int НДСTurnover;
public Integer getTurnover() {
return Turnover;
}
public void setTurnover(Integer Turnover) {
this.Turnover = Turnover;
}
}
}
Примерно то что находиться на сервере JSON
{
"odata.metadata": "http://MYSERVER/ocean_shop/odata/standard.odata/$metadata#Collection(StandardODATA.AccumulationRegister_ПродажиСебестоимость_Turnover)",
"value": [
{
"Номенклатура_Key": "cd1beaa2-eb72-11e7-b49e-3085a93c0618",
"ХарактеристикаНоменклатуры_Key": "00000000-0000-0000-0000-000000000000",
"ЗаказПокупателя": "",
"ЗаказПокупателя_Type": "StandardODATA.Undefined",
"ДокументОприходования": "c04e6bb4-eb77-11e7-8d51-3085a93c0618",
"ДокументОприходования_Type": "StandardODATA.Document_ОприходованиеТоваров",
"Подразделение_Key": "99c2e4c6-a655-11e7-a216-3085a93c0618",
"Проект_Key": "00000000-0000-0000-0000-000000000000",
"КоличествоTurnover": 1,
"СтоимостьTurnover": 2200
},
{
"Номенклатура_Key": "725d9200-9ddf-11e7-a202-3085a93c0618",
"ХарактеристикаНоменклатуры_Key": "00000000-0000-0000-0000-000000000000",
"ЗаказПокупателя": "",
"ЗаказПокупателя_Type": "StandardODATA.Undefined",
"ДокументОприходования": "2d459277-a359-11e7-a211-3085a93c0618",
"ДокументОприходования_Type": "StandardODATA.Document_ОприходованиеТоваров",
"Подразделение_Key": "99c2e4c6-a655-11e7-a216-3085a93c0618",
"Проект_Key": "00000000-0000-0000-0000-000000000000",
"КоличествоTurnover": 1,
"СтоимостьTurnover": 50
},
{
"Номенклатура_Key": "3bb4dcbe-9ddc-11e7-a202-3085a93c0618",
"ХарактеристикаНоменклатуры_Key": "00000000-0000-0000-0000-000000000000",
"ЗаказПокупателя": "",
"ЗаказПокупателя_Type": "StandardODATA.Undefined",
"ДокументОприходования": "31bc57f3-a76b-11e7-a217-3085a93c0618",
"ДокументОприходования_Type": "StandardODATA.Document_ОприходованиеТоваров",
"Подразделение_Key": "99c2e4c6-a655-11e7-a216-3085a93c0618",
"Проект_Key": "00000000-0000-0000-0000-000000000000",
"КоличествоTurnover": 2,
"СтоимостьTurnover": 162
}
]
}
MYSERVER, USER, PASS содержат мои значения
Собственно мне нужно получить значение поля в JSON СтоимостьTurnover примеров в интернете которые я смог разобрать не помогли. Помогите может перестроить запрос или укажите направление для решение задачи.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники