不使用 JSON 解析字符串对象

迪马宁

我需要从 html 元素属性解析一个对象(就像 angular 那样)而不使用 JSON.parse 或其他东西

例如我有一个DIV这样的

<div some-attribute="{key1: 1 > 0, key2: true || false}"></div>

解析后,我只需要这个对象中所有内容的字符串表示:

{'key1': '1 > 0', 'key2': 'true || false'}

有没有能力在不发明新的解析器的情况下以这种方式解析它?

迪马宁

谢谢大家,我意识到我应该为此创建一个解析器。这是第一个版本(在 Coffee,不是纯 JS)

class Parser
    self = @

    constructor: ->

    @quotes: '\'"`'

    @object: (dataStr) ->
        dataStr = $dp.fn.trim dataStr
        if dataStr[0] isnt '{' or dataStr.slice(-1) isnt '}'
            return null
        dataStr = dataStr.slice 1, dataStr.length - 1

        o = {}
        pair =
            key: ''
            value: ''
        addPair = ->
            o[$dp.fn.trim(pair.key)] = $dp.fn.trim pair.value
            pair.key = pair.value = ''
        quoteOpened = null
        underCursor = 'key'

        for ch, i in dataStr
            skip = false

            if ch in self.quotes
                unless quoteOpened
                    quoteOpened = ch
                    skip = true
                else if quoteOpened and ch is quoteOpened
                    quoteOpened = null
                    skip = true

            unless quoteOpened
                switch
                    when ch is ':'
                        underCursor = 'border'
                    when underCursor is 'border' and not /\s/.test ch
                        underCursor = 'value'
                    when ch is ','
                        underCursor = 'key'
                        addPair()
                        skip = true

            pair[underCursor] += ch if underCursor isnt 'border' and not skip

        addPair() if pair.key or pair.value
        o

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Postgres解析字符串化的JSON对象

无法使用Circe JSON解析器创建通过JSON字符串的对象

使用JSON从字符串解析数组?

使用jq解析JSON字符串

使用json解析空字符串

当数据是字符串而不是对象时,如何在android中使用解析相同的json响应?

如何使用python获取(解析)Json嵌套字符串(来自API)数据,如对象

仅使用字符串和值解析JSON对象

使用Jackson的ObjectMapper解析具有动态类型(字符串或对象)的值的JSON

使用节点中嵌套对象的字符串文字进行 JSON 解析

javaScript:使用JSON解析字符串对象。parse删除引用

在 Android 中使用 3 层(对象、数组、字符串)解析 JSON

将 Javascript 对象解析为类似 JSON 的字符串,但使用单引号

使用 Jackson 将 Json 字符串解析为 Kotlin 对象抛出 InvalidDefinitionException

Json 对象不使用双引号解析

使用 Cheshire 解析为 json - 生成字符串和解析字符串

在Android中的活动之间传递对象为何使用Parcelable?为什么不使用JSON字符串?

jq:错误无法用字符串索引字符串。如何使用 jq 解析具有可变对象值的 json 文件

使用GSON将字符串解析为JsonObject会产生IllegalStateException:这不是JSON对象

如何使用jq解析器提取json对象中的一部分字符串值

使用 JSON 字符串键重命名 JSON 字符串到 Java 对象

JSON使用已经作为值的JSON字符串对对象进行字符串化

使用正斜杠解析 json 字符串 - javascript

使用 ObjectMapper java API 解析 JSON 字符串

使用 Gson 解析 Json 字符串给我错误

使用动态键解析JSON字符串

GSON无法使用字符串空间解析JSON

在Powershell中使用Empy字符串键解析JSON

如何使用Delphi解析JSON字符串响应