Я пытаюсь получить доступ к 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
Почему этот код говорит, что в Jsondata от FCC нет значения для «Calling» из API FCC? ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
PIP говорит, что Python-magic установлен, но вещество говорит, что это не так.
Anonymous » » в форуме Python - 0 Ответы
- 36 Просмотры
-
Последнее сообщение Anonymous
-
-
-
PIP говорит, что Python-magic установлен, но вещество говорит, что это не так.
Anonymous » » в форуме Python - 0 Ответы
- 38 Просмотры
-
Последнее сообщение Anonymous
-
-
-
PIP говорит, что Python-magic установлен, но вещество говорит, что это не так.
Anonymous » » в форуме Python - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-