当前位置: 首页 > 知识库问答 >
问题:

无法从API提取数组值

温翔宇
2023-03-14
{"channel":

        {"id":1382053,"name":"WeightScale","latitude":"0.0","longitude":"0.0","field1":"weight",
        "created_at":"2021-05-06T05:18:16Z","updated_at":"2021-05-06T05:18:16Z","last_entry_id":207},
        
    "feeds":
        [
            {"created_at":"2021-05-07T16:26:06Z","entry_id":206,"field1":"0.00000"},
            {"created_at":"2021-05-07T16:26:22Z","entry_id":207,"field1":"2.00000"}
        ]
}
package com.dommy.qrcodelib;


import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.Toast;

import com.macroyau.thingspeakandroid.ThingSpeakChannel;
import com.macroyau.thingspeakandroid.model.ChannelFeed;

import java.util.Date;


public class MainActivity extends AppCompatActivity {

    private ThingSpeakChannel tsChannel;

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

    public void fetchData() {
        tsChannel = new ThingSpeakChannel(1382053,"[MyAPIKey]");
        // Set listener for Channel feed update events
        tsChannel.setChannelFeedUpdateListener(new ThingSpeakChannel.ChannelFeedUpdateListener() {
            @Override
            public void onChannelFeedUpdated(long channelId, String channelName, ChannelFeed channelFeed) {
               
                long entry = channelFeed.getChannel().getLastEntryId();
                Log.e(null,""+ entry); 
                Date lastUpdate = channelFeed.getChannel().getUpdatedAt();
                Toast.makeText(MainActivity.this, lastUpdate.toString(), Toast.LENGTH_LONG).show();
                
                //unable to get last data value from here onwards (instead prints lots of entries) 
                
                 String d = channelFeed.getFeeds().toString();
                 Log.e(null,""+ d); 
            }
        });
        
        tsChannel.loadChannelFeed();

    }
}
E/dommy.qrcodeli: [com.macroyau.thingspeakandroid.model.Feed@90c638d, com.macroyau.thingspeakandroid.model.Feed@ca98942, com.macroyau.thingspeakandroid.model.Feed@70dbd53, com.macroyau.thingspeakandroid.model.Feed@1bb1690, com.macroyau.thingspeakandroid.model.Feed@e8ab89, com.macroyau.thingspeakandroid.model.Feed@c4af78e, com.macroyau.thingspeakandroid.model.Feed@92cdbaf, com.macroyau.thingspeakandroid.model.Feed@b630bbc, com.macroyau.thingspeakandroid.model.Feed@6277745, com.macroyau.thingspeakandroid.model.Feed@982fe9a, com.macroyau.thingspeakandroid.model.Feed@b7583cb, com.macroyau.thingspeakandroid.model.Feed@93327a8, com.macroyau.thingspeakandroid.model.Feed@4cd42c1, com.macroyau.thingspeakandroid.model.Feed@8026a66, com.macroyau.thingspeakandroid.model.Feed@65691a7, com.macroyau.thingspeakandroid.model.Feed@1671654, com.macroyau.thingspeakandroid.model.Feed@aaa49fd, com.macroyau.thingspeakandroid.model.Feed@3bac6f2, com.macroyau.thingspeakandroid.model.Feed@50a143, com.macroyau.thingspeakandroid.model.Feed@4943c0, com.macroyau.thingspeakandroid.model.Feed@85688f9, com.macroyau.thingspeakandroid.model.Feed@42a603e, com.macroyau.thingspeakandroid.model.Feed@d520e9f, com.macroyau.thingspeakandroid.model.Feed@a5edbec, com.macroyau.thingspeakandroid.model.Feed@5edbbb5, com.macroyau.thingspeakandroid.model.Feed@868424a, com.macroyau.thingspeakandroid.model.Feed@7d2f5bb, com.macroyau.thingspeakandroid.model.Feed@553cad8, com.macroyau.thingspeakandroid.model.Feed@78b5e31, com.macroyau.thingspeakandroid.model.Feed@7f03916, com.macroyau.thingspeakandroid.model.Feed@fb13297, com.macroyau.thingspeakandroid.model.Feed@3a6bc84, com.macroyau.thingspeakandroid.model.Feed@d86ac6d, com.macroyau.thingspeakandroid.model.Feed@42ed0a2, com.macroyau.thingspeakandroid.model.Feed@acc6133, com.macroyau.thingspeakandroid.model.Feed@f151cf0, com.macroyau.thingspeakandroid.model.Feed@c6ea269, com.macroyau.thingspeakandroid.model.Feed@6cd54ee, com.macroyau.thingspeakandroid.model.Feed@361dd8f, com.macroyau.thingspeakandroid.model.Feed@dc7181c, com.macroyau.thingspeakandroid.model.Feed@8c5fc25, com.macroyau.thingspeakandroid.model.Feed@8bdd1fa, com.macroyau.thingspeakandroid.model.Feed@28c3ab, com.macroyau.thingspeakandroid.model.Feed@e3b9a08, com.macroyau.thingspeakandroid.model.Feed@27f35a1, com.macroyau.thingspeakandroid.model.Feed@e0713c6, com.macroyau.thingspeakandroid.model.Feed@22def87, com.macroyau.thingspeakandroid.model.Feed@5f44eb4, com.macroyau.thingspeakandroid.model.Feed@c388add, com.macroyau.thingspeakandroid.model.Feed@250a652, com.macroyau.thingspeakandroid.model.Feed@46ffd23, com.macroyau.thingspeakandroid.model.Feed@ee1a220, com.macroyau.thingspeakandroid.model.Feed@a37f7d9, com.macroyau.thingspeakandroid.model.Feed@22ed59e, com.macroyau.thingspeakandroid.model.Feed@93b487f, com.macroyau.thingspeakandroid.model.Feed@f8ec04c, com.macroyau.thingspeakandroid.model.Feed@5273895, com.macroyau.thingspeakandroid.model.Feed@d2eadaa, com.macroyau.thingspeakandroid.model.Feed@145ed9b, com.macroyau.thingspeakandroid.model.Feed@a0d9538, com.macroyau.thingspeakandroid.model.Feed@c8fc911, com.macroyau.thingspeakandroid.model.Feed@ca1fa76, com.macroyau.thingspeakandroid.model.Feed@88bc877, com.macroyau.thingspeakandroid.model.Feed@da2cce4, com.macroyau.thingspeakandroid.model.Feed@516e54d, com.macroyau.thingspeakandroid.model.Feed@b2b4802, com.macroyau.thingspeakandroid.model.Feed@4ea7513, com.macroyau.thingspeakandroid.model.Feed@731d350, com.macroyau.thingspeakandroid.model.Feed@e798949, com.macroyau.thingspeakandroid.model.Feed@909e24e, com.macroyau.thingspeakandroid.model.Feed@27d4f6f, com.macroyau.thingspeakandroid.model.Feed@c68d47c, com.macroyau.thingspeakandroid.model.Feed@d487105, com.macroyau.thingspeakandroid.model.Feed@925d55a, com.macroyau.thingspeakandroid.model.Feed@9b9738b, com.macroyau.thingspeakandroid.model.Feed@dacbc68, com.macroyau.thingspeakandroid.model.Feed@4641881, com.macroyau.thingspeakandroid.model.Feed@2dbed26, com.macroyau.thingspeakandroid.model.Feed@b49bd67, com.macroyau.thingspeakan
D/CompatibilityChangeReporter: Compat change id reported: 147798919; UID 10000; state: DISABLED
E/dommy.qrcodeli: Invalid ID 0x00000000.
 

共有1个答案

皇甫树
2023-03-14

您的代码表示一个JSON数组,而不是一个JSON对象。

getFeeds()必须返回Feed对象列表。根据LastEntryId查找最后一个Feed对象,该对象为您提供了FeedObject。现在可以打印feedobject.field1值。

这是Kotlin中的一个伪代码,以求帮助。

val feedList = channelFeed.getFeeds()
val feed = feedList.find { it.entryId == lastEntryId }
Log.d("TAG", "Value is " + feed.field1)
 类似资料:
  • 问题内容: 我一直在尝试使用nativescript创建一个android应用程序。我正在使用fetch模块从服务器获取响应。当我尝试从 **httpbin.org/get 获取响应时,可以。但是当我尝试获取响应时从我的本地服务器上,我收到 网络请求失败。** 错误。 发送到httpbin.org/get- 发送到localhost:8000 / api- 当我尝试通过请求模块在纯node.js中

  • 这是我收到的错误: 请求的资源上不存在“< code > Access-Control-Allow-Origin ”标头。因此,不允许访问源“https://s.codepen.io”。如果不透明响应满足您的需要,请将请求的模式设置为' < code>no-cors ',以便在禁用cors的情况下获取资源。 我将模式设置为但仍然没有运气。

  • 我一直在尝试使用nativescript创建一个android应用程序。我正在使用fetch模块从服务器获取响应。当我试图从httpbin获得响应时。org/get,没关系。但当我试图从本地服务器获取响应时,网络请求失败。错误 发送到httpbin。组织/获取- 发送到本地主机:8000/api- 当我尝试从纯节点中的localhost:8000/api获取响应时。js通过请求模块。它工作得很好。

  • 问题内容: 我知道它是一个数组,但是我对JSON完全陌生,需要帮助理解它的结构,这是我提取数据的尝试: 我拥有的JSON数据如下所示: 我对这些东西的掌握并不强,因此感谢所有帮助。 问题答案: 这是个主意: 它应该可以工作(如果有编译错误,请随时投诉)

  • 我一直在与服务器使用改型的响应进行斗争。 Logcat正在打印JSONObject,但它在