Opið, JSON-byggt snið til að skilgreina kannanir og eyðublöð. Notað af YourOpinion.is og frjálst öllum til innleiðingar.
Núverandi útgáfa: 1.0
Einfölduð Markdown-útgáfa
Einnig er í boði einfaldað innflutningsferli byggt á Markdown, hannað sérstaklega fyrir gervigreindarfulltrúa. Þetta ferli notar „Rich Markdown“ afbrigði til að skilgreina spurningar, valmöguleika og síðuskil með venjulegu textasniði. Í stað þess að smíða flókið JSON-fyrirbæri útbýr gervigreindin skipulagðan Markdown-streng og kódar hann í einn smellanlegan hlekk. Með því að smella á hlekkinn endurbyggist könnunin samstundis í vafranum.
Sækja forskrift
- JSON skema - Vélilesin sniðskilgreining
- Markdown - Mannlesin skjölun (hagrætt fyrir stór málalíkön)
Inngangur
Opið könnunarsnið býður upp á staðlaða leið til að skilgreina kannanir, spurningalista og eyðublöð sem JSON-hluti. Þetta snið gerir eftirfarandi kleift:
- Færanleiki - Flytja kannanir á milli mismunandi kerfa og verkfæra
- Útgáfustýring - Fylgjast með breytingum á könnunum með hefðbundnum samanburðarverkfærum (diff tools)
- Forritunarleg sköpun - Búa til kannanir á gangvirkan hátt úr kóða
- Samhæfni við stór málalíkön - Gervigreindaraðstoðarmenn geta auðveldlega búið til og breytt könnunum
Grunnhugtök
Söfn (Síður)
Könnunum er skipt upp í söfn, sem virka sem síður eða hlutar. Hver könnun verður að innihalda að minnsta kosti eitt safn.
Einingar
Einstakir íhlutir innan safns, svo sem:
- Spurningar (textainnsláttur, fjölval, matskvarðar o.s.frv.)
- Efniskubbar (Markdown texti, myndir)
- Flæðistýringareiningar (skilyrt rökfræði, síðustökk)
Eignir (Assets)
Endurnýtanlegir íhlutir sem hægt er að vísa í úr mörgum spurningum:
- Valkostalistar (fyrir valspurningar)
- Matskvarðar
- Sameiginlegar auðlindir
Uppbygging skjals
Könnun er táknuð sem JSON-hlutur með þessari uppbyggingu:
{
"$schema": "https://youropinion.is/json-schema/1.0",
"$readme": "https://youropinion.is/docs/survey-format.md",
"collections": {
"collection-id-1": {
"name": "Nafn safns",
"elements": {
"element-id-1": {
"type": "Markdown",
"data": {
/* Gögn sem eiga við einingu */
}
}
},
"displayOrder": ["element-id-1"]
}
},
"displayOrder": ["collection-id-1"],
"assets": {
"asset-id-1": {
"type": "options",
"data": {
/* Gögn sem eiga við eign */
}
}
}
}
Eiginleikar á efsta stigi
$schema (valfrjálst)
Vefslóð á JSON skema skilgreiningu fyrir staðfestingu:
"$schema": "https://youropinion.is/json-schema/1.0"
$readme (valfrjálst)
Vefslóð á mannlesna skjölun:
"$readme": "https://youropinion.is/docs/survey-format.md"
collections (áskilið)
Hlutur sem inniheldur síður/hluta könnunarinnar. Hver lykill er einstakt auðkenni safns:
"collections": {
"welcome": {
"name": "Opnunarsíða",
"elements": { /* ... */ },
"displayOrder": ["intro", "consent"]
},
"questions": {
"name": "Aðalspurningar",
"elements": { /* ... */ },
"displayOrder": ["q1", "q2", "q3"]
}
}
Eiginleikar safns:
name(strengur, valfrjálst) - Mannlesið nafn á safni (ekki sýnt notendum, notað til viðmiðunar)condition(hlutur, valfrjálst) - Skilyrt rökfræði til að ákvarða hvort sýna eigi þetta safn (sjá kaflann Skilyrt rökfræði)elements(hlutur) - Inniheldur einingar fyrir þetta safn. Hver lykill er einstakt auðkenni einingardisplayOrder(fylki) - Fylki af auðkennum eininga sem skilgreinir birtingarröð
Mikilvægt: displayOrder fylkið virkar bæði sem sía og raðari:
- Aðeins einingar sem skráðar eru í
displayOrderverða sýndar - Einingar sem ekki eru í
displayOrdereru áfram í skilgreiningunni en eru faldar - Ef auðkenni einingar sem ekki er til er sett í fylkið mun það valda villu
displayOrder (áskilið)
Fylki sem tilgreinir röð safna:
"displayOrder": ["welcome", "questions", "thank-you"]
Sömu síunarreglur gilda: aðeins söfn sem eru skráð hér verða sýnd.
assets (valfrjálst)
Endurnýtanlegir íhlutir sem vísað er í úr mörgum einingum. Eignir (assets) draga úr tvítekningu og gera viðhald kannana auðveldara.
Tegundir eigna:
options- Endurnýtanlegir valkostalistar fyrir SelectOne/SelectMany spurningarordinal-scale- Endurnýtanlegir merktir kvarðar fyrir OrdinalScale spurningarinterval-scale- Endurnýtanlegir tölulegir kvarðar fyrir IntervalScale spurningarcondition- Nefnt skilyrði (hópur) fyrir skilyrði safna ogFlowControl-einingar
Dæmi - Valkostaeign:
"assets": {
"color-options": {
"type": "options",
"name": "Litavalkostir",
"data": {
"options": {
"red": { "label": "Rauður" },
"blue": { "label": "Blár" },
"green": { "label": "Grænn" },
"yellow": { "label": "Gulur" }
},
"displayOrder": ["red", "blue", "green", "yellow"]
}
},
"satisfaction-scale": {
"type": "ordinal-scale",
"name": "Hefðbundinn ánægjukvarði",
"data": {
"labels": {
"1": "Mjög óánægð(ur)",
"2": "Óánægð(ur)",
"3": "Hlutlaus",
"4": "Ánægð(ur)",
"5": "Mjög ánægð(ur)"
}
}
},
"nps-scale": {
"type": "interval-scale",
"name": "NPS-kvarði (Net Promoter Score)",
"data": {
"start": 0,
"end": 10,
"labels": {
"start": "Ólíklegt",
"end": "Mjög líklegt"
}
}
},
"detractors": {
"type": "condition",
"name": "Gagnrýnendur",
"data": {
"type": "condition",
"fact": "questions/nps-score",
"operator": "lte",
"compare": { "value": 6 }
}
}
}
Allar tegundir eigna krefjast:
type- Tegund eignar:"options","ordinal-scale","interval-scale"eða"condition"name- Mannlesið nafn fyrir skjölundata- Gagnagrind sem er sértæk fyrir tegundina
Hægt er að vísa í eignir með JSON tilvísunum (sjá kafla um JSON tilvísanir).
Tegundir eininga
Einingar eru byggingareiningar könnunarinnar. Hver eining hefur type og data eiginleika. Allar einingar geta valfrjálst innihaldið extensions hlut fyrir sérsniðin lýsigögn (ekki notað af hefðbundnum birtingarvélum).
Tiltækar tegundir eininga:
| Tegund | Flokkur | Lýsing |
|---|---|---|
Markdown |
Efni | Birta sniðinn texta og efni |
FlowControl |
Stýring | Skilyrt rökfræði og flakk |
String |
Spurning | Textainnsláttur (ein eða fleiri línur) |
OpenList |
Spurning | Listi af textafærslum sem notandi bætir við |
Number |
Spurning | Talnainnsláttur |
Date |
Spurning | Dagsetningaval |
Boolean |
Spurning | Já/Nei gátreitur |
SelectOne |
Spurning | Einn valkostur úr lista (valhnappar) |
SelectMany |
Spurning | Margir valkostir úr lista (gátreitir) |
Ranking |
Spurning | Raða mörgum valkostum eftir mikilvægi eða forgangi |
IntervalScale |
Spurning | Tölulegur matskvarði (t.d. 0-10 fyrir NPS, 1-5 fyrir ánægju) |
OrdinalScale |
Spurning | Matskvarði með merktum gildum (t.d. Mjög ósammála til Mjög sammála) |
Payment |
Spurning | Greiðsluvinnslueining |
Efniseiningar
Markdown
Birtir sniðinn texta, fyrirsagnir, lista og annað efni með Markdown málskipan.
{
"type": "Markdown",
"data": {
"markdown": "# Velkomin(n)!\n\nÞakka þér fyrir að taka þátt í könnuninni okkar.\n\n- Vinsamlegast svaraðu af heiðarleika\n- Öll svör eru nafnlaus"
}
}
Studdur Markdown:
- Fyrirsagnir (
#,##,###) - Listar (raðaðir og óraðaðir)
- Feitletrað (
**texti**) og skáletrað (*texti*) - Tenglar (
[texti](slóð)) - Kóðablokkir
FlowControl
Stýrir flæði könnunar með skilyrtri rökfræði og flakki.
{
"type": "FlowControl",
"data": {
"condition": {
/* Valfrjálst - Sjá kafla um skilyrta rökfræði */
},
"action": {
"type": "survey-finish" // Valkostir: "survey-finish" eða "page-finish"
}
}
}
Tegundir aðgerða:
survey-finish- Ljúka könnuninni straxpage-finish- Ljúka núverandi síðu og fara á þá næstu
Fyrir nánari upplýsingar um uppbyggingu skilyrða og dæmi, sjá kaflann Skilyrt rökfræði hér að neðan.
Tegundir spurninga
Allar spurningar deila þessum sameiginlegu eiginleikum:
{
"type": "QuestionType",
"data": {
"label": "Spurningartextinn þinn hér",
"required": "yes", // Valfrjálst: "yes", "no", eða "suggested" (sjálfgefið er "no")
"markdown": "Hjálpartexti" // Valfrjálst: viðbótar samhengi á Markdown formi
}
}
Sameiginlegir eiginleikar:
label(strengur, áskilið) - Spurningartextinn sem birtist notendumrequired(strengur, valfrjálst) - Hvort svar sé áskilið:"yes","no", eða"suggested"(birtist sem valkvætt en er mælt með)markdown(strengur, valfrjálst) - Viðbótar hjálpartexti eða lýsing á Markdown formidefaultValue(hvað sem er, valfrjálst) - Forgildisgildi fyrir spurningunavariants(hlutur, valfrjálst, við hliðdata) - Spurningin breytt fyrir einn hóp, sjá Útgáfur
String
Textainnsláttur fyrir eina eða fleiri línur.
{
"type": "String",
"data": {
"label": "Hvað heitir þú?",
"placeholder": "Sláðu inn fullt nafn", // Valfrjálst
"multiline": false, // Valfrjálst: true fyrir textasvæði
"required": "yes"
}
}
OpenList
Margir textainnslættir sem listi. Notendur geta bætt við atriðum einu í einu.
{
"type": "OpenList",
"data": {
"label": "Teldu upp helstu forgangsatriði",
"multiline": false, // Valfrjálst: true fyrir málsgreinainnslátt
"minItems": 1, // Valfrjálst: lágmarksfjöldi atriða
"maxItems": 5, // Valfrjálst: hámarksfjöldi atriða
"required": "yes"
}
}
Eiginleikar:
multiline(boolean, valfrjálst) - Ef true, er hvert atriði málsgrein (textasvæði). Ef false (sjálfgefið), er hvert atriði ein línaminItems(tala, valfrjálst) - Lágmarksfjöldi atriða sem þarfmaxItems(tala, valfrjálst) - Hámarksfjöldi leyfilegra atriða
Number
Talnainnsláttur með valfrjálsri gildisprófun.
{
"type": "Number",
"data": {
"label": "Hversu margir starfsmenn?",
"min": 1, // Valfrjálst: lágmarksgildi
"max": 1000, // Valfrjálst: hámarksgildi
"step": 1, // Valfrjálst: þrepastærð (sjálfgefið: 1)
"required": "yes"
}
}
Eiginleikar:
min(tala, valfrjálst) - Lágmarksgildimax(tala, valfrjálst) - Hámarksgildistep(tala, valfrjálst) - Þrepastærð fyrir gildisprófun innsláttar (sjálfgefið: 1)
Date
Dagsetningarval með valfrjálsri nákvæmni og lágmarks/hámarks takmörkunum.
{
"type": "Date",
"data": {
"label": "Hvenær gekkst þú til liðs við okkur?",
"required": "suggested",
"accuracy": "day", // Valfrjálst: "day", "month", eða "year" (sjálfgefið: "day")
"min": "2020-01-01", // Valfrjálst: fyrsta valanlega dagsetning
"max": "2025-12-31" // Valfrjálst: síðasta valanlega dagsetning
}
}
Eiginleikar:
accuracy(strengur, valfrjálst) - Nákvæmni dagsetningar:"day"- Fullt dagsetningarval með dagatali (sjálfgefið)"month"- Val á mánuði og ári úr fellilista"year"- Val á ári eingöngu úr fellilista
min(strengur, valfrjálst) - Fyrsta valanlega dagsetning. Getur verið:- ISO dagsetningarstrengur (t.d.
"2020-01-01") - Afstæður tímastrengur (t.d.
"+ 3 months","now","- 1 year")
- ISO dagsetningarstrengur (t.d.
max(strengur, valfrjálst) - Síðasta valanlega dagsetning. Sömu sniðmöguleikar ogmin.
Boolean
Já/Nei gátreitur. Sjálfgefið gildi er false (ómerkt).
{
"type": "Boolean",
"data": {
"label": "Skilmálar",
"description": "Ég samþykki skilmálana" // Birtist við hliðina á gátreitnum
}
}
SelectOne
Fjölvalsspurning (valhnappar) - notendur velja einn valkost.
{
"type": "SelectOne",
"data": {
"label": "Hver er uppáhaldsliturinn þinn?",
"required": "yes",
"options": {
"options": {
"red": { "label": "Rauður" },
"blue": { "label": "Blár" },
"green": { "label": "Grænn" }
},
"displayOrder": ["red", "blue", "green"]
}
}
}
Notkun tilvísana í eignir:
{
"type": "SelectOne",
"data": {
"label": "Veldu lit",
"options": { "$ref": "#/assets/color-options/data" }
}
}
SelectMany
Fjölvalsspurning (gátreitir) - notendur geta valið marga valkosti.
{
"type": "SelectMany",
"data": {
"label": "Hvaða stýrikerfi notar þú?",
"required": "yes",
"options": {
"options": {
"windows": { "label": "Windows" },
"macos": { "label": "macOS" },
"linux": { "label": "Linux" }
},
"displayOrder": ["windows", "macos", "linux"]
},
"other": true, // Valfrjálst: bæta við „Annað“ valkosti með textainnslætti
"minSelections": 1, // Valfrjálst: lágmarksfjöldi valkosta sem krafist er
"maxSelections": 3 // Valfrjálst: hámarksfjöldi valkosta sem leyfður er
}
}
Ranking
Raðaðu mörgum valkostum eftir mikilvægi, forgangi eða eignum. Notendur gefa hverjum valkosti stig, oftast með samanburðaraðferðum eins og MaxDiff, parakönnun (pairwise comparison), draga-og-sleppa flokkun (drag-and-drop) eða fjárhagsáætlun (budget allocation).
{
"type": "Ranking",
"data": {
"label": "Raðaðu þessum eiginleikum eftir mikilvægi",
"required": "yes",
"options": {
"options": {
"performance": { "label": "Hraði og afköst" },
"design": { "label": "Hreinleg hönnun" },
"price": { "label": "Hagstætt verð" },
"support": { "label": "Þjónustuver allan sólarhringinn" }
},
"displayOrder": ["performance", "design", "price", "support"]
}
}
}
IntervalScale
Tölulegur matskvarði með skilgreindu bili (t.d. 0-10 fyrir NPS, 1-5 fyrir ánægju). Algengt að nota fyrir:
- Net Promoter Score (NPS): 0-10 kvarði
- Ánægjumælingar: 1-5 eða 1-7 kvarði
- Líkinda spurningar: 0-10 kvarði
{
"type": "IntervalScale",
"data": {
"label": "Hversu líklegt er að þú myndir mæla með okkur við vin?",
"required": "yes",
"scale": {
"start": 0, // Byrjunargildi kvarðans
"end": 10, // Endagildi kvarðans
"labels": {
// Merkingar fyrir upphafs- og endapunkta (áskilið)
"start": "Alls ekki líklegt",
"end": "Einstaklega líklegt"
}
}
}
}
Algeng notkun:
// Net Promoter Score (NPS)
{
"type": "IntervalScale",
"data": {
"label": "Hversu líklegt er að þú myndir mæla með okkur?",
"scale": {
"start": 0,
"end": 10,
"labels": {
"start": "Ólíklegt",
"end": "Mjög líklegt"
}
}
}
}
// 5-stiga ánægjukvarði
{
"type": "IntervalScale",
"data": {
"label": "Hversu ánægð(ur) ert þú með þjónustu okkar?",
"scale": {
"start": 1,
"end": 5,
"labels": {
"start": "Mjög óánægð(ur)",
"end": "Mjög ánægð(ur)"
}
}
}
}
Birting: Sýnir láréttan kvarða með smellanlegum tölum. Merkingar birtast fyrir neðan upphafs- og endapunkta.
OrdinalScale
Matskvarði með merkingum þar sem hver punktur hefur sérsniðna merkingu. Tilvalið fyrir:
- Likert-kvarða með sérstöku orðalagi fyrir hvern punkt
- Samþykkiskvarða (Mjög ósammála → Mjög sammála)
- Tíðniskvarða (Aldrei → Alltaf)
- Sérsniðna matskvarða með merkingarbærum gildum
{
"type": "OrdinalScale",
"data": {
"label": "Hversu ánægð(ur) ert þú með stöðu þína?",
"required": "yes",
"scale": {
"labels": {
"1": "Mjög óánægð(ur)",
"2": "Óánægð(ur)",
"3": "Hlutlaus",
"4": "Ánægð(ur)",
"5": "Mjög ánægð(ur)"
}
}
}
}
Algeng notkun:
// Likert samþykkiskvarði
{
"type": "OrdinalScale",
"data": {
"label": "Varan stóðst væntingar mínar",
"scale": {
"labels": {
"1": "Mjög ósammála",
"2": "Ósammála",
"3": "Hvorki sammála né ósammála",
"4": "Sammála",
"5": "Mjög sammála"
}
}
}
}
// Tíðniskvarði
{
"type": "OrdinalScale",
"data": {
"label": "Hversu oft notar þú vöruna okkar?",
"scale": {
"labels": {
"1": "Aldrei",
"2": "Sjaldan",
"3": "Stundum",
"4": "Oft",
"5": "Alltaf"
}
}
}
}
Birting: Sýnir merkta hnappa eða valkosti. Hver merking er sýnd í heild sinni, sem gerir kvarðann auðskiljanlegan.
IntervalScale vs OrdinalScale:
- Notaðu IntervalScale (jafnbilakvarða) þegar tölurnar sjálfar hafa merkingu (0-10, 1-5)
- Notaðu OrdinalScale (raðkvarða) þegar þú þarft sérsniðnar merkingar fyrir hvern punkt
- IntervalScale er fyrirferðarminni; OrdinalScale er lýsingarmeiri
Payment
Safna greiðsluupplýsingum og vinna færslur. Samþættist við greiðsluþjónustur sem eru uppsettar í stillingum könnunarinnar.
{
"type": "Payment",
"data": {
"label": "Greiðsla",
"required": "yes",
"amount": {
"value": 29.99,
"currency": "USD"
},
"captureMethod": "automatic" // Valfrjálst: "immediate", "manual", eða "automatic"
}
}
Eiginleikar:
amount(hlutur, áskilið) - Greiðsluupphæð meðvalue(tala) ogcurrency(3-stafa kóði, t.d. “USD”, “EUR”, “ISK”)captureMethod(strengur, valfrjálst) - Hvenær á að gjaldfæra (innheimta) greiðslu:"immediate"- Gjaldfæra strax þegar könnun er send inn"manual"- Krefst handvirkrar gjaldfærslu í gegnum greiðslustjórnborðið þitt"automatic"- Gjaldfæra sjálfkrafa þegar könnun er lokið (sjálfgefið)
Athugið: Greiðsluvinnsla krefst þess að greiðsluþjónusta sé uppsett í stillingum rásarinnar þinnar. Studdir gjaldmiðlar og greiðslumátar fara eftir uppsetningu þjónustuveitanda þíns.
Útgáfur
Spurning getur haft variants við hlið data: sama spurning, breytt fyrir einn hóp. Útgáfa nefnir skilyrði, skrifað beint eða sem tilvísun í hóp (condition-eign, sjá Hópar), og það sem hún breytir; svarið lendir á sama stað hvert sem orðalagið er:
{
"type": "String",
"data": { "label": "Hver er meginástæðan fyrir einkunn þinni?", "multiline": true },
"variants": {
"variants": {
"low": {
"condition": { "$ref": "#/assets/detractors/data" },
"data": { "label": "Okkur þykir leitt að heyra það. Hver er meginástæðan fyrir einkunn þinni?" }
},
"high": {
"condition": { "$ref": "#/assets/promoters/data" },
"data": { "label": "Hver er meginástæðan fyrir því að þú gafst okkur svona háa einkunn?", "placeholder": "Það eina sem við gerðum rétt" },
"extensions": { "highlight": false }
}
},
"displayOrder": ["low", "high"]
}
}
variants(hlutur) - Útgáfur eftir auðkenni;displayOrdertelur auðkennin upp í þeirri röð sem þau eru reynd. Sú fyrsta sem á við hópinn er spurð; ef engin á við er spurningin spurð eins og hún er skrifuð. Auðkenni sem vantar ídisplayOrderer haldið en aldrei spurt.conditionútgáfu er skrifað eins og hvert annað skilyrði: beint, eða sem$refí hóp, efst eða sem liður í keðju. Staðreyndirnar sem það les verða að koma á undan spurningunni. Staðreynd á sömu síðu er ákveðin jafnóðum, meðan svarandinn svarar: orðalagið breytist á staðnum og svar sem þegar hefur verið slegið inn helst.defaultValuegildir aðeins þegar útgáfan er ákveðin áður en síðan birtist.dataogextensionsútgáfu eru samrunabætur (merge patch) ofan á eigin gildi spurningarinnar: settur lykill kemur í stað reitsins,nullfjarlægir hann, hreiðraður hlutur bætir hlutinn undir honum, fylki kemur í stað fylkisins í heild. Öllu má breyta nematype. Svar við hvaða útgáfu sem er geymist undir auðkenni spurningarinnar sjálfrar, svo útgáfa sem breytir merkingu svarsins (valkostum þess, kvarða) breytir henni fyrir allan dálkinn. Útgáfa breytir því hvernig spurningin er orðuð, aldrei því sem hún spyr um: hvert orðalag hér að ofan spyr um ástæðuna fyrir einkunninni, svo hvert svar les rétt undir eigin merkimiða spurningarinnar.
JSON tilvísanir
Draga úr tvítekningu með því að vísa í endurnýtanlega íhluti. Tilvísanir nota þetta snið:
{ "$ref": "[<location>]#<path>" }
location- Vefslóð að upprunaskjali (tómt = núverandi skjal)path- Slóð frá rót skjalsins með/sem aðgreiningu
Dæmi - Innbyggð tvítekning:
{
"question-1": {
"type": "SelectOne",
"data": {
"label": "Uppáhaldslitur?",
"options": {
"options": {
"red": { "label": "Rauður" },
"blue": { "label": "Blár" }
},
"displayOrder": ["red", "blue"]
}
}
},
"question-2": {
"type": "SelectOne",
"data": {
"label": "Minnst uppáhalds litur?",
"options": {
"options": {
"red": { "label": "Rauður" },
"blue": { "label": "Blár" }
},
"displayOrder": ["red", "blue"]
}
}
}
}
Betra - Notkun eigna (assets):
{
"collections": {
"main": {
"elements": {
"question-1": {
"type": "SelectOne",
"data": {
"label": "Uppáhaldslitur?",
"options": { "$ref": "#/assets/colors/data" }
}
},
"question-2": {
"type": "SelectOne",
"data": {
"label": "Minnst uppáhalds litur?",
"options": { "$ref": "#/assets/colors/data" }
}
}
},
"displayOrder": ["question-1", "question-2"]
}
},
"assets": {
"colors": {
"type": "options",
"data": {
"options": {
"red": { "label": "Rauður" },
"blue": { "label": "Blár" }
},
"displayOrder": ["red", "blue"]
}
}
}
}
Kostir:
- Einn sannleiksgjafi (Single source of truth)
- Auðveldara viðhald
- Betri samanburður í útgáfustýringu
- Minni skráarstærð
Skilyrt rökfræði
Skilyrt rökfræði gerir þér kleift að búa til gangvirkar kannanir sem aðlagast svörum notenda. Hægt er að nota skilyrði á tvo vegu:
1. Skilyrði á stigi safns
Sýna eða fela heilar síður byggt á skilyrðum. Ef skilyrði safns er metið sem false er allri síðunni sleppt og keyrsla heldur áfram í næsta safn.
{
"collections": {
"follow-up": {
"name": "Eftirfylgnispurningar",
"condition": {
"type": "condition",
"fact": "questions/nps-score",
"operator": "lt",
"compare": { "value": 7 }
},
"elements": {
/* ... */
},
"displayOrder": ["question-1"]
}
}
}
Í þessu dæmi er „eftirfylgni“ síðan aðeins sýnd ef NPS einkunnin er lægri en 7.
2. FlowControl einingar
Stýra flæði könnunar innan síðu með FlowControl einingum. Þegar skilyrði er metið sem true er tilgreind aðgerð framkvæmd.
Tiltækar aðgerðir:
survey-finish- Ljúka könnuninni strax (sleppa öllum eftirstandandi síðum)page-finish- Ljúka núverandi síðu og fara á þá næstu (sleppa eftirstandandi einingum á núverandi síðu)
{
"type": "FlowControl",
"data": {
"condition": {
"type": "condition",
"fact": "questions/satisfaction",
"operator": "eq",
"compare": { "value": "very-satisfied" }
},
"action": {
"type": "page-finish"
}
}
}
Athugið: Ef ekkert condition er tilgreint er aðgerðin alltaf framkvæmd þegar komið er að einingunni.
Uppbygging skilyrða
Skilyrði eru skilgreind sem tvíundartré með tveimur tegundum hnúta:
1. Samanburðarskilyrði
Bera saman staðreynd (svar úr könnun) við gildi eða aðra staðreynd.
{
"type": "condition",
"fact": "questions/age",
"operator": "gt",
"compare": { "value": 18 }
}
Eiginleikar:
type- Alltaf"condition"fyrir samanburðfact(strengur) - Tilvísun í einingu á sniðinu ‘safn-auðkenni/eining-auðkenni’ til að lesa gildið úroperator(strengur) - Samanburðarvirki (sjá virkja hér að neðan)compare(hlutur, valfrjálst) - Við hvað á að bera saman:{ "value": <any> }- Bera saman við fast gildi{ "fact": "<safn-auðkenni/eining-auðkenni>" }- Bera saman við gildi annarrar einingar- Ekki áskilið fyrir virkja eins og
"exists"eða"true"
not(boolean, valfrjálst) - Snúa niðurstöðunni við (sjálfgefið:false)
Studdar virkjar eftir tegund einingar:
Number, IntervalScale, OrdinalScale, Date:
"eq"- Jafnt og"gt"- Stærra en"gte"- Stærra en eða jafnt og"lt"- Minna en"lte"- Minna en eða jafnt og"exists"- Hefur gildi (þarf ekkicompare)
String:
"eq"- Jafnt og"contains"- Strengur inniheldur gildi"exists"- Hefur gildi (þarf ekkicompare)
Boolean:
"true"- Gildi er satt (þarf ekkicompare)"exists"- Hefur gildi (þarf ekkicompare)
SelectOne:
"eq"- Jafnt og tiltekinn valkostur"in"- Er einn af mörgum valkostum (samanburðargildi ætti að vera á SelectMany formi)"exists"- Hefur gildi (þarf ekkicompare)
SelectMany:
"eq"- Samsvarar nákvæmlega mengi valkosta"exists"- Hefur að minnsta kosti eitt gildi (þarf ekkicompare)
2. Keðjuskilyrði
Sameina mörg skilyrði með rökfræðilegum virkjum.
{
"type": "all",
"items": [
{
"type": "condition",
"fact": "questions/age",
"operator": "gt",
"compare": { "value": 18 }
},
{
"type": "condition",
"fact": "questions/country",
"operator": "eq",
"compare": { "value": "US" }
}
]
}
Eiginleikar:
type- Rökfræðilegur virki:"all"- Öll skilyrði verða að vera sönn (AND rökfræði)"any"- Að minnsta kosti eitt skilyrði verður að vera satt (OR rökfræði)
items(fylki) - Fylki af skilyrðum (geta verið samanburðir eða innfelldar keðjur)not(boolean, valfrjálst) - Snúa við niðurstöðu allrar keðjunnarname(strengur, valfrjálst) - Mannlesanleg merking fyrir skjölun
Dæmi
Sleppa könnun fyrir ánægða viðskiptavini
{
"type": "FlowControl",
"data": {
"condition": {
"type": "condition",
"fact": "questions/nps",
"operator": "gte",
"compare": { "value": 9 }
},
"action": {
"type": "survey-finish"
}
}
}
Sýna síðu aðeins fyrir ákveðinn aldurshóp
{
"collections": {
"teen-questions": {
"name": "Spurningar fyrir unglinga",
"condition": {
"type": "all",
"items": [
{
"type": "condition",
"fact": "questions/age",
"operator": "gte",
"compare": { "value": 13 }
},
{
"type": "condition",
"fact": "questions/age",
"operator": "lt",
"compare": { "value": 20 }
}
]
},
"elements": {
/* ... */
}
}
}
}
Flókin innfelld skilyrði
{
"type": "any",
"name": "Premium notendur eða stórnotendur",
"items": [
{
"type": "condition",
"fact": "questions/membership",
"operator": "eq",
"compare": { "value": "premium" }
},
{
"type": "all",
"items": [
{
"type": "condition",
"fact": "questions/total-spent",
"operator": "gt",
"compare": { "value": 1000 }
},
{
"type": "condition",
"fact": "questions/active-months",
"operator": "gte",
"compare": { "value": 6 }
}
]
}
]
}
Hópar: eitt skilyrði, notað á mörgum stöðum
condition-eign er hópur: skilyrði með nafni, skrifað einu sinni undir assets og vísað í hvar sem skilyrði er tekið við, efst eða sem liður í keðju. Þrjár síður sem sýndar eru sama hópi segja það þá einu sinni, og breyting á hópnum breytir öllum þremur.
{
"collections": {
"follow-up": {
"name": "Framhald fyrir gagnrýnendur",
"condition": { "$ref": "#/assets/detractors/data" },
"elements": { /* ... */ },
"displayOrder": ["question-1"]
},
"contact": {
"name": "Megum við hafa samband",
"elements": {
"skip": {
"type": "FlowControl",
"data": {
"condition": {
"type": "all",
"not": true,
"items": [{ "$ref": "#/assets/detractors/data" }]
},
"action": { "type": "survey-finish" }
}
}
},
"displayOrder": ["skip"]
}
},
"assets": {
"detractors": {
"type": "condition",
"name": "Gagnrýnendur",
"data": {
"type": "condition",
"fact": "questions/nps-score",
"operator": "lte",
"compare": { "value": 6 }
}
}
}
}
Eigin data hóps eru skrifuð beint: hann getur ekki vísað í annan hóp. Staðreyndirnar sem hann les verða að koma á undan hverjum stað sem notar hann, eins og með skilyrði sem er skrifað beint.
Bera saman tvær staðreyndir
{
"type": "condition",
"fact": "questions/current-salary",
"operator": "gt",
"compare": { "fact": "questions/desired-salary" }
}
Notkun á not eiginleikanum
{
"type": "condition",
"fact": "questions/email-consent",
"operator": "true",
"not": true // Snýr niðurstöðunni við: satt þegar email-consent er EKKI satt
}
Útgáfusaga
| Útgáfa | Dagsetning | Breytingar |
|---|---|---|
| 1.0 | 2025-11-15 | Greiðslueining |
| 0.5 | 2025-01-24 | Fyrsta opinbera útgáfa |