1. Swift / Говнокод #25705

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    /* Create a JSON object from JSON data stream. The stream should be opened and configured. All other behavior of this method is the same as the JSONObjectWithData:options:error: method.
         */
    open class func jsonObject(with stream: InputStream, options opt: ReadingOptions = []) throws -> Any {
        var data = Data()
        guard stream.streamStatus == .open || stream.streamStatus == .reading else {
             fatalError("Stream is not available for reading")
         }
         repeat {
             var buffer = [UInt8](repeating: 0, count: 1024)
             var bytesRead: Int = 0
             bytesRead = stream.read(&buffer, maxLength: buffer.count)
             if bytesRead < 0 {
                 throw stream.streamError!
             } else {
                 data.append(&buffer, count: bytesRead)
             }
         } while stream.hasBytesAvailable
         return try jsonObject(with: data, options: opt)
    }

    Потоковое чтение JSON от авторов "iСделаль"

    Запостил: Desktop, 07 Июля 2019

    Комментарии (21) RSS

    • #seo

      https://github.com/apple/swift-corelibs-foundation/blob/ef6f96ee82ea0f54252071c0ecadf5f01be9aecc/Foundation/JSONSerialization.swift#L208
      Ответить
    • Нужно срочно перевести на "PHP". Пока древния боги не разгневались.
      Ответить
    • Ну вот, а то в каком-то треде на ГК утверждали, что «JSON» нельзя чанками парсить!
      Ответить
      • Можно ли "JSON" парсить многопоточно?
        Ответить
        • Можно выделить кусок жсона (пробежавшись по нему и посчитав парные скобки), но даст ли это выигрыш?
          Ответить
          • > скобки
            И кавычки с учётом экранировок... В общем, пока пробежишься - оно уже почти и спарсится.
            Ответить
          • Можно 2 потока: один сначала, другой с конца. [/color]
            Ответить
    • Ничего не понимаю. Переведи на "PHP".
      Ответить
      • http://risovach.ru/upload/2014/03/mem/ebat-ty-loh-bez-nadpisi_44861362_orig_.jpeg
        Ответить
    • переведи на обжектив си
      Я не обязан знать эти ваши новомодные языкм
      Ответить
      • Исходники Foundation для Obj C раздобыть, кстати, не так тривиально. И, возможно, что там это сделано по-другому и даже по-нормальному.
        Ответить
    • Акуеть. У меня с 26 июня 2456 сообщений от @GovnokodBot...
      Ответить
      • О, боже! Расскажи нам ещё о своих проблемах.
        Ответить
      • Там рекурсивный петух спамил
        Ответить
        • https://memoteka.com/images/thumb/4/42/%D0%9F%D0%B5%D0%B4%D0%BE%D0%B1%D0%B8%D1%802.jpg/600px-%D0%9F%D0%B5%D0%B4%D0%BE%D0%B1%D0%B8%D1%802.jpg
          Ответить

    Добавить комментарий