第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JsonReader 在數(shù)組末尾停止讀取

JsonReader 在數(shù)組末尾停止讀取

慕桂英3389331 2021-09-12 10:50:17
我正在編寫一個 Spigot 插件來生成板條箱。這個 JsonReader 掃描寶庫文件以獲取我請求的特定設(shè)置。問題是,我不想一遍又一遍地復(fù)制相同的 while 循環(huán),所以我決定做這個。它成功讀取前六個標(biāo)記,但它在標(biāo)記 6 處停止,“最大軸”數(shù)組在此處停止。那里沒有逗號。當(dāng)我將第四個數(shù)字添加到數(shù)組時,它甚至?xí)x取它,但在該數(shù)字處停止,因為那里沒有逗號。JsonReader.setLenient(true)是使用,JsonWriter.setLenient(true)用于寫文件。我試過將作者設(shè)置為假。這寫的方式很奇怪,但這只是為了測試?,F(xiàn)在不需要從文件中實際返回值。PoolFile.scanDocument()private Object scanDocument(JsonReader reader, Shell handleObj) {    reader.setLenient(true);    int retval = -2;    try {        JsonToken token = null; Object current = -5;        while (reader.hasNext()) {            token = reader.peek();            //if (token == JsonToken.END_DOCUMENT) break;            // Output while reading: 0 2 1 3 3 3            switch(token) {                case BEGIN_OBJECT:  reader.beginObject(); retval = 0; break;                case BEGIN_ARRAY:   reader.beginArray(); retval = 1; break;                case NAME:          current = reader.nextName(); retval = 2; break;                case NUMBER:        current = reader.nextDouble(); retval = 3; break;                case BOOLEAN:       current = reader.nextBoolean(); retval = 4; break;                case STRING:        current = reader.nextString(); retval = 5; break;                case END_ARRAY:     reader.endArray(); retval = 6; break;                case END_OBJECT:    reader.endObject(); retval = 7; break;                default:            reader.skipValue(); retval = -1;            }            handleObj.doWithJSONObject(token, retval);        }    } catch (IOException e) { retval = -1; e.printStackTrace(); }    return retval;}默認(rèn)池.json{    "max-axis": [        50.0,        -1.0,        50.0 // It stops here.    ],    "pools": [        {            "label": "test",            "items": {}        }    ]}編輯如果您想查看該應(yīng)用程序,請訪問 GitHub 頁面。來源位于skycrates/src/main
查看完整描述

1 回答

?
慕尼黑8549860

TA貢獻1818條經(jīng)驗 獲得超11個贊

問題是由于reader.hasNext(). 與其他 Reader 類相比,此方法非常具有誤導(dǎo)性。根據(jù)方法說明

/** * 如果當(dāng)前數(shù)組或?qū)ο笥辛硪粋€元素,則返回 true 。*/

因此,當(dāng)您reader.hasNext()在消耗第一個數(shù)組中的所有元素后調(diào)用時。它將返回 false 并且您的循環(huán)結(jié)束。要解決此問題,請將條件更改為while (reader.peek() != JsonToken.END_DOCUMENT)


查看完整回答
反對 回復(fù) 2021-09-12
  • 1 回答
  • 0 關(guān)注
  • 189 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號