V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
theohateonion
V2EX  ›  jQuery

用 jQuery 如何从 json 文件中选出特定关键字的键值对?

  •  
  •   theohateonion · 2015-12-07 02:29:23 +08:00 · 4591 次点击
    这是一个创建于 3279 天前的主题,其中的信息可能已经有所发展或是发生改变。
    太晚了脑子有点迷糊 问题描述不清楚见谅

    我的 json 文件大概是{"title":xxx, "value":xxx, "title":xxx, "value":xxx ...}这种形式的 现在我要选出特定 title 内容的 json 文件 并进行 dom 操作 但是现在卡在选出上面了。写到现在脑子已经迷糊了。我知道这个问题可能比较愚蠢,当伸手党并不好。求各位的提供解决办法,直接给出解决办法或者提供相关的文档地址都感激不尽!(我去睡觉了明天起来回复大家 果然熬夜还是效率低)
    19 条回复    2015-12-07 21:26:25 +08:00
    chemzqm
        1
    chemzqm  
       2015-12-07 04:10:55 +08:00
    $.json = function(jsonStringj){ return JSON.parse(jsonString)}
    $.json('{"title":xxx, "value":xxx, "title":xxx, "value":xx}')
    hxsf
        2
    hxsf  
       2015-12-07 07:50:29 +08:00
    json 对象的话,直接 obj.title ,obj.value 不就好了?
    julor
        3
    julor  
       2015-12-07 08:07:33 +08:00 via Android
    jQuery 害了一代人!标准的 json 难道还有比 js 更简单的语言?
    sxd
        4
    sxd  
       2015-12-07 08:16:25 +08:00
    1 楼太调皮
    hxsf
        5
    hxsf  
       2015-12-07 08:24:57 +08:00 via Android
    @hxsf 刚刚没注意,话说楼主的 json 怎么会有一堆 title 和 value 。。。。
    正常风格不是应该{"title1":value1, "title2":value2...}
    或者[{"title":xxx, "value":xxx}, {"title":xxx, "value":xxx}...}]
    说的不对还望见谅
    yuriko
        6
    yuriko  
       2015-12-07 08:42:21 +08:00
    key 重复是什么情况,把生成这段 json 的人拖出来打一顿
    JohnH
        7
    JohnH  
       2015-12-07 08:43:00 +08:00
    http://stackoverflow.com/questions/4992383/use-jquerys-find-on-json-object
    use jQuery's find() on JSON object

    传回这样的数据形式有点不对,应该像 @hxsf 写的那样
    Hyperion
        8
    Hyperion  
       2015-12-07 08:46:04 +08:00
    @julor 这并不是 jQuery 的锅, 估计只是没搞清楚逻辑而已.

    @sxd 大清早活捉野生 sxd 一枚.
    theohateonion
        9
    theohateonion  
    OP
       2015-12-07 09:02:36 +08:00
    @hxsf - -果然还是不能熬夜写代码 对的 数据格式是你说的。 我描述错了。
    theohateonion
        10
    theohateonion  
    OP
       2015-12-07 09:03:41 +08:00
    @Hyperion 对哒 可能也是昨天弄了半天也没弄出来有点沮丧 今天再慢慢捋一捋~
    Niphor
        11
    Niphor  
       2015-12-07 10:12:10 +08:00
    这种不是应该用 lodash 什么的么...
    YuJianrong
        12
    YuJianrong  
       2015-12-07 10:20:55 +08:00
    这要什么 jQ 啊 orz ……
    var map = arr.map(function(m, item){ m[item.title] = item.value; return m}, {});
    你这样转出一个 map 不就随便怎么用了么……
    powergx
        13
    powergx  
       2015-12-07 10:24:22 +08:00 via iPhone
    这 tmd 是 json ,为什么 有两个 title
    feikeq
        14
    feikeq  
       2015-12-07 10:38:53 +08:00
    @powergx 就是,这明显第二个 title 会覆盖第一个.
    xieranmaya
        15
    xieranmaya  
       2015-12-07 11:41:53 +08:00
    你的 json 是数组吧,直接 map 或者 filter 不就好了吗,这关 jQuery 什么事。。。
    FrankFang128
        16
    FrankFang128  
       2015-12-07 12:28:01 +08:00 via Android
    把输出者打一顿可以解决根本问题。
    theohateonion
        17
    theohateonion  
    OP
       2015-12-07 14:55:35 +08:00
    @powergx 是我自己描述错了 数据格式应该是如 @hxsf 所说
    nino
        18
    nino  
       2015-12-07 15:04:13 +08:00
    filter 一下即可
    TaMud
        19
    TaMud  
       2015-12-07 21:26:25 +08:00
    $("[title='TaMud 全是猪']")
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2590 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:51 · PVG 23:51 · LAX 07:51 · JFK 10:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.