8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

将 json 响应作为流进行处理

user25472259 2月前

75 0

我有一个 http 响应,其主体是 ByteReadChannel。我知道内容是 JSON 对象数组。我需要通过 JSON 对象的属性来过滤该响应主体。由于数组...

我有一个 http 响应,其主体是 ByteReadChannel 。我知道内容是一个 JSON 对象数组。我需要根据对象的属性过滤该响应主体 JSON 。由于该数组可能包含至少数千个对象,因此我希望避免将整个内容读入内存,应用我的过滤器并将结果发送到客户端。

我怎样才能将其转换 ByteReadChannel 为,比如说, Flow<MyJsonObject> 流上的过滤器? Flow 这只是一个例子,也许有更好的类可以使用......

附言:我用 Ktor .

帖子版权声明 1、本帖标题:将 json 响应作为流进行处理
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由user25472259在本站《kotlin》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我正在尝试创建简单的 Dice Roller JetPack Compose 应用程序。我创建了一个图像组合和按钮组合。每当我单击按钮时,日志语句都会显示按钮被单击,但我无法向上...

    我正在尝试创建简单的 Dice Roller JetPack Compose App。我创建了一个图像组合和按钮组合。每当我单击按钮时,日志语句都会显示按钮被单击,但我无法根据该数据更新骰子图像。我将附上我的代码以供将来参考。我做错了什么?

    package com.example.mydiceroller
    
    import android.os.Bundle
    import android.util.Log
    import androidx.activity.ComponentActivity
    import androidx.activity.compose.setContent
    import androidx.compose.foundation.Image
    import androidx.compose.foundation.layout.Arrangement
    import androidx.compose.foundation.layout.Column
    import androidx.compose.foundation.layout.fillMaxSize
    import androidx.compose.material3.Button
    import androidx.compose.material3.Text
    import androidx.compose.runtime.Composable
    import androidx.compose.ui.Alignment
    import androidx.compose.ui.Modifier
    import androidx.compose.ui.res.painterResource
    import androidx.lifecycle.ViewModelProvider
    
    class MainActivity : ComponentActivity() {
    
        lateinit var mainViewModel: MainViewModel
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContent {
    
                mainViewModel = ViewModelProvider(this).get(MainViewModel::class.java)
                Column(
                    modifier = Modifier
                        .fillMaxSize(),
                    horizontalAlignment = Alignment.CenterHorizontally,
                    verticalArrangement = Arrangement.Center
                ) {
                    DiceImage(count = mainViewModel.count)
                    Button(onClick = {
                        mainViewModel.rollDice()
                    }
                    )
                    {
                        Text(text = "Let's Roll")
                    }
    
                }
            }
        }
    
    }
    
    @Composable
    fun DiceImage(count: Int) {
    
    
        Log.d("countValue", "${count}")
    
        var countId=when (count) {
            1 -> R.drawable.dice_1
            2 -> R.drawable.dice_2
            3 -> R.drawable.dice_3
            4 -> R.drawable.dice_4
            5 -> R.drawable.dice_5
            else -> R.drawable.dice_6
        }
        Image(
            painter = painterResource(id = countId), contentDescription = ""
        )
    }
    
    

    MainViewModel.kt

    package com.example.mydiceroller
    
    import android.util.Log
    import androidx.lifecycle.ViewModel
    import java.util.Random
    
    class MainViewModel : ViewModel() {
        var count: Int = 1
    
        fun rollDice(): Int {
            count = (Random().nextInt(6) + 1)
            Log.d("ViewModel", "ButtonClicked")
            return count
        }
    }
    
    

    我也尝试了 mutableStateOf 但失败了

返回
作者最近主题: