如何使用Javascript在JSON中存储值?

时间:2016-06-29 20:34:04

标签: javascript sql json

我在DB中有多个客户,每个客户都已登录参加活动。我有多个客户签署了同一个活动。所以我想在屏幕上输出事件名称,然后根据所有客户登录该事件。以下是我的记录在数据库中的样子:

Event Name     Customer Name
Test 1          joe, allen
Test 2          tim, johnas 
Test 2          camil, gera
Test 1          john, paskins
Test 3          steve, mcines
Test 3          jym, haskynes
Test 2          kim, george

这是我的问题:

SELECT EventName, Customer
From Reservations

所以我想知道我是否可以使用JSON来存储具有相同事件名称的结果?我如何检查他们是否有相同的事件名称以及如何将它们存储在JSON的不同行中,为什么我可以在屏幕上的事件名称下面的单独行中输出具有相同名称的记录?

2 个答案:

答案 0 :(得分:1)

JSON是一种非协调格式:

var a = [{"eventName" : "Test 1", "customerName": "joe, allen"},
         {"eventName" : "Test 2", "customerName": "tim, johnas"}]
alert(a[0].eventName);

是否可以在JSON中对eventName进行地址处理,这样就无法在不使用循环的情况下获取正确的条目。

但您可以在打印输出之前使用对象存储JSON列表:

var b = {"Test 1": [{ "customerName": "joe, allen" },
                    { "customerName": "john, paskins" }],
         "Test 2": [{"customerName": "tim, johnas"}]    
}

alert(b["Test 1"][1].customerName); // will return "john, paskins"

但是这样你就无法使用b [0] [0],因为b [0]只会在对象中出现类似的结果时给出结果:

                0:[{customerName: "john, doe"}]

答案 1 :(得分:0)

理解它的最简单方法是将其分为2个不同的查询。

首先:获取不同的eventNames列表

SELECT DISTINCT eventName From Reservations

这将返回如下结果:

eventName     
Test 1     
Test 2         
Test 3         

然后根据这些结果,您可以对结果进行另一次查询,以吸引客户参与。

foreach(ROW in RESULTS)
    SELECT customerName FROM Reservations WHERE eventName = ROW

这将为您提供参加该活动的客户列表。

从那里构建JSON非常简单。以下是stackoverflow上的答案示例:How can I build a json string in javascript/jquery?