nabeya
(4410)
June 15, 2023, 3:10am
1
いつもお世話になっております。よろしくお願いします。
お聞きしたいこと
jsonobjectのループ処理に回数上限があるのかどうか
着目する点が間違っているとしたら次にどこを疑ったらよいか です。
“JSON を逆シリアル化” アクティビティでjsonobject型にしたものを、
for eachアクティビティのループ処理でデータテーブル化を行っているのですが、
jsonobjectのカウントでは435件とあるのに(json_obj.GetValue(“totalCount”).ToString で435と出ます)
for eachを行うと決まって100でループ処理を抜けてしまいます。
上限は無いと思うのですが、どうでしょうか。
jsonはいまいち理解が乏しいのですが、どうチェックしたら良いかご教授頂けたらと。
よろしくお願いします。
Yoichi
(Yoichi)
June 15, 2023, 3:20am
2
こんにちは
具体的にどのようなデータで、何を対象にイテレートしていますでしょうか?
可能でしたらサンプルや実際のワークフローを共有いただけるとよいと思います。(事象が再現できるならダミーでも結構です)
nabeya
(4410)
June 15, 2023, 4:03am
3
Yoichi様
いつもありがとうございます
text_json.txt (64.1 KB)
具体的なデータですが、kintoneのアプリから"http要求"アクティビティでレコードを落としてきています。出力結果で得たstring(添付致しましたテキストファイルがそれです。実際のものはもっと項目があります)を"JSON を逆シリアル化"アクティビティでjobjectに、これをFor Eachに代入しております。
Yoichi
(Yoichi)
June 15, 2023, 4:18am
4
上記ですとデシリアライズしたJObjectをjoとすると
jo.GetValue("totalCount").Value(Of String) は108です。
これはjsonファイル中に埋め込まれた値ですので、
この値の出所・意味はAPI仕様を確認する必要があります。
jo(“records”) でイテレートした件数は100件です。
実際に元データも100件あります。
nabeya
(4410)
June 15, 2023, 4:28am
5
Yoichi様
ありがとうございます。
totalcountなるものは
上記kintoneの仕様で最大レコード数が取得できるといったものでして。
これが100超えであるため、それをデシリアライズしたらjoも同様の108あるものと思っていたのですが、、
つまりは最大レコード数108という数値のみを出力しているだけで、テキストファイル内(kintoneからは)には100レコードしか取得できていない、ということでしたか。
Yoichi
(Yoichi)
June 15, 2023, 5:04am
6
はい、実際にJSON parserあるいはテキストエディタで確認すると良いかと思います。
system
(system)
Closed
June 18, 2023, 5:20am
8
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.