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

将 json 响应作为流进行处理

user25472259 2月前

81 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)
  • 感谢@Leviathan 提供的解决方案。我正在修改对我有用的@leviathan 解决方案

    setContent {
    //    mainViewModel = MainViewModel()
    //    mainViewModel = ViewModelProvider(this).get(MainViewModel::class.java)
    //    val count = mainViewModel.count.collectAsStateWithLifecycle()
        val state = remember {
            MainViewModel()
        }
        val uiState by state.count.collectAsStateWithLifecycle()
        Log.d("DiceRollerMainActivity", "State Flow Count Value ${uiState}")
    
        val imageresource = when (uiState) {
            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
        }
        Log.d("DiceRollerMainActivity", "Image Resource Value ${imageresource}")
    
        Column(
            modifier = Modifier
                .fillMaxSize(),
            horizontalAlignment = Alignment.CenterHorizontally,
            verticalArrangement = Arrangement.Center,
        ) {
            Image(
                painter = painterResource(id = imageresource),
                contentDescription = ""
            )
    
            Button(onClick = {
                state.rollDice()
            }) {
                Text(text = "Let's Roll")
            }
        }
    }
    
返回
作者最近主题: