我无法从JSON数据中获取特定值。假设我有JSON数据,如下面的https://api.thingspeak.com/channels/494244/fields/1.json?api_key=3O8HR1YR38GCGD31&results=1。我能够看到JSON数据,但无法获得我需要的特定数据。
MainActivity
public class MainActivity extends AppCompatActivity {
public static Button click;
public static TextView data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
click = (Button) findViewById(R.id.button);
data=(TextView) findViewById(R.id.fetcheddata);
click.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fetchData process=new fetchData();
process.execute();
fetchData类
public class fetchData extends AsyncTask<Void,Void,Void> {
String data="";
int dataParsed=0;
String singleParsed="";
String entryId="";
@Override
protected Void doInBackground(Void... voids) {
try {
URL url=new URL("https://api.thingspeak.com/channels/494244/fields/1.json?api_key=3O8HR1YR38GCGD31&results=2");
HttpURLConnection httpURLConnection=(HttpURLConnection) url.openConnection();
InputStream inputStream=httpURLConnection.getInputStream();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
String line="";
while(line!=null){
line=bufferedReader.readLine();
data=data+line;
}
JSONObject object=new JSONObject(data);
JSONObject feeds=object.getJSONObject("feeds");
entryId = feeds.getString("entry_id");
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
MainActivity.data.setText(this.entryId
);
请帮助我如何获得具体价值。例如&#34; entry_id&#34;在我提供的JSON数据链接的feeds数组中。提前致谢
答案 0 :(得分:1)
嗯...... function HasDuplicateValues() {
var Duplicates = false;
$('#select1 option').each(function () {
var $SameValue = $('#select1 option[value=' + $(this).val() + ']');
Duplicates = $SameValue.length > 2);
alert('dublicates')
};
});
是一个数组,而不是一个对象。所以你需要改变:
feeds
为:
object.getJSONObject("feeds")
最后,能够获得JSONArray jsonArray = object.getJSONArray("feeds")
entry_id
您需要检查您从JSON获取的内容类型并使用相应的get方法。
修改强>
很抱歉,因为这是一个数组,你必须循环它......就像这样:
jsonArray.getInt("entry_id")