Почему этот код говорит, что в Jsondata от FCC нет значения для «Calling» из API FCC?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Почему этот код говорит, что в Jsondata от FCC нет значения для «Calling» из API FCC?

Сообщение Anonymous »

Я пытаюсь получить доступ к API FCC следующим образом http://data.fcc.gov/lpfmapi/rest/v1/lat ... channel=tr >
Если вы копируете этот URL -адрес, вы можете увидеть, что он дает данные, некоторые из которых имеют обозначение «Calling». Я хочу вернуть Callsign и частоту, и по какой -то причине я получаю ошибку, говоря, что для Callsign нет значения. Я очень новичок в Jsondata, поэтому задаюсь вопросом, что я сделал не так! Любая помощь была бы удивительной, спасибо за чтение !!!package com.dredaydesigns.radiostationfinder;

import android.R;
import android.app.Activity;
import android.location.Location;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.location.LocationServices;
import com.squareup.okhttp.Call;
import com.squareup.okhttp.Callback;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.Response;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;

public class MainActivity extends Activity implements GoogleApiClient.ConnectionCallbacks {

public static final String TAG = MainActivity.class.getSimpleName();
private RadioData mRadioData;

private GoogleApiClient mGoogleApiClient;
private Location mLastLocation;

TextView latitudeLabel;
TextView longitudeLabel;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_content);

double latitude = 32;
double longitude = -96;
final RadioData[] mRadioData = new RadioData[1];
String radioFinderURL = "http://data.fcc.gov/lpfmapi/rest/v1/lat/" + latitude + "/long/" + longitude + "?format=json&secondchannel=true";

OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(radioFinderURL)
.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {

}

@Override
public void onResponse(Response response) throws IOException {
try {
String jsonData = response.body().string();
Log.v(TAG,jsonData);
if (response.isSuccessful()) {
mRadioData[0] = getCurrentDetails(jsonData);

}

} catch (IOException e) {
Log.e(TAG, "Exception Caught: ", e);
}
catch(JSONException e){
Log.e(TAG, "Exception Caught:", e);
}
}
});

}

private RadioData getCurrentDetails(String jsonData) throws JSONException {
JSONObject radioData = new JSONObject(jsonData);
String callSign = radioData.getString("callsign");
Log.i(TAG, "From JSON: " + callSign);

JSONObject currently = radioData.getJSONObject("frequency");
RadioData radioFinder = new RadioData();

return new RadioData();

}

protected synchronized void buildGoogleApiClient() {
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener((GoogleApiClient.OnConnectionFailedListener) this)
.addApi(LocationServices.API)
.build();

}

@Override
public void onConnected(Bundle bundle) {
mLastLocation = LocationServices.FusedLocationApi.getLastLocation(
mGoogleApiClient);
if (mLastLocation != null) {
latitudeLabel.setText(String.valueOf(mLastLocation.getLatitude()));
longitudeLabel.setText(String.valueOf(mLastLocation.getLongitude()));
}
}

@Override
public void onConnectionSuspended(int i) {

}

}
< /code>

И вот мой код для radiodata.java < /p>

package com.dredaydesigns.radiostationfinder;

/**
* Created by Andreas on 8/10/2015.
*/
public class RadioData {
public String getCallSign() {
return mCallsign;
}

public void setCallSign(String callsign) {
mCallsign = callsign;
}

public double getFrequency() {
return mFrequency;
}

public void setFrequency(double frequency) {
mFrequency = frequency;
}

public int getChannel() {
return mChannel;
}

public void setChannel(int channel) {
mChannel = channel;
}

public double getLatitude() {
return mLatitude;
}

public void setLatitude(double latitude) {
mLatitude = latitude;
}

public double getLongitude() {
return mLongitude;
}

public void setLongitude(double longitude) {
mLongitude = longitude;
}

private String mCallsign;
private double mFrequency;
private int mChannel;
private double mLatitude;
private double mLongitude;

}
< /code>

И вот мой код для деятельности Main xml < /p>












< /code>

И, наконец, вот что сказал Logcat, и первая строка, которую вы можете увидеть, получает все данные, поэтому я думаю, что я не пишу их должным образом для импорта » Callsign "значение? < /p>

08-10 23:13:42.115 28737-28753/com.dredaydesigns.radiostationfinder V/MainActivity﹕ {"status":"OK","responseTime":1777,"message":[],"decision":"PASSED.","interferingAnalysis":[{"channel":221,"frequency":92.1,"interferingChannels":[{"callsign":"KTBB-FM","interferenceChannel":221,"interferenceChannelType":"Same channel (cochannel)","actualDistance":80.1,"minDistanceReqd":119.0}]},{"channel":225,"frequency":92.9,"interferingChannels":[{"callsign":"KRMX","interferenceChannel":225,"interferenceChannelType":"Same channel (cochannel)","actualDistance":132.0,"minDistanceReqd":143.0},{"callsign":"KTYL-FM","interferenceChannel":226,"interferenceChannelType":"First-adjacent channel ","actualDistance":103.1,"minDistanceReqd":111.0}]},{"channel":260,"frequency":99.9,"interferingChannels":[{"callsign":"WACO-FM","interferenceChannel":260,"interferenceChannelType":"Same channel (cochannel)","actualDistance":144.3,"minDistanceReqd":203.0}]},{"channel":264,"frequency":100.7,"interferingChannels":[{"callsign":"KPXI","interferenceChannel":264,"interferenceChannelType":"Same channel (cochannel)","actualDistance":90.6,"minDistanceReqd":119.0},{"callsign":"KWRD-FM","interferenceChannel":264,"interferenceChannelType":"Same channel (cochannel)","actualDistance":187.4,"minDistanceReqd":203.0}]},{"channel":273,"frequency":102.5,"interferingChannels":[{"callsign":"KLJT","interferenceChannel":272,"interferenceChannelType":"First-adjacent channel ","actualDistance":80.1,"minDistanceReqd":84.0},{"callsign":"KBRQ","interferenceChannel":273,"interferenceChannelType":"Same channel (cochannel)","actualDistance":111.3,"minDistanceReqd":178.0}]},{"channel":277,"frequency":103.3,"interferingChannels":[{"callsign":"KJCS","interferenceChannel":277,"interferenceChannelType":"Same channel (cochannel)","actualDistance":128.5,"minDistanceReqd":143.0},{"callsign":"KESN","interferenceChannel":277,"interferenceChannelType":"Same channel (cochannel)","actualDistance":187.4,"minDistanceReqd":203.0}]},{"channel":285,"frequency":104.9,"interferingChannels":[{"callsign":"KZMP-FM","interferenceChannel":285,"interferenceChannelType":"Same channel (cochannel)","actualDistance":187.3,"minDistanceReqd":193.0}]},{"channel":289,"frequency":105.7,"interferingChannels":[{"callsign":"KYKX","interferenceChannel":289,"interferenceChannelType":"Same channel (cochannel)","actualDistance":129.2,"minDistanceReqd":193.0}]},{"channel":298,"frequency":107.5,"interferingChannels":[{"callsign":"KISX","interferenceChannel":297,"interferenceChannelType":"First-adjacent channel ","actualDistance":82.1,"minDistanceReqd":84.0},{"callsign":"KMVK","interferenceChannel":298,"interferenceChannelType":"Same channel (cochannel)","actualDistance":111.5,"minDistanceReqd":178.0}]},{"channel":299,"frequency":107.7},{"channel":300,"frequency":107.9}]}
08-10 23:13:42.115 28737-28753/com.dredaydesigns.radiostationfinder E/MainActivity﹕ Exception Caught:
org.json.JSONException: No value for callsign
at org.json.JSONObject.get(JSONObject.java:38

9)
at org.json.JSONObject.getString(JSONObject.java:550)
at com.dredaydesigns.radiostationfinder.MainActivity.getCurrentDetails(MainActivity.java:80)
at com.dredaydesigns.radiostationfinder.MainActivity.access$000(MainActivity.java:24)
at com.dredaydesigns.radiostationfinder.MainActivity$1.onResponse(MainActivity.java:63)
at com.squareup.okhttp.Call$AsyncCall.execute(Call.java:170)
at com.squareup.okhttp.internal.NamedRunnable.run(NamedRunnable.java:33)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)


Подробнее здесь: https://stackoverflow.com/questions/319 ... sondata-fr
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проблема с охватом тонкого кода (FCC) при создании отчета
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • PIP говорит, что Python-magic установлен, но вещество говорит, что это не так.
    Anonymous » » в форуме Python
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous
  • PIP говорит, что Python-magic установлен, но вещество говорит, что это не так.
    Anonymous » » в форуме Python
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • PIP говорит, что Python-magic установлен, но вещество говорит, что это не так.
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • React Calling Flask API, приводящая к ошибке CORS
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»