JSON String Expression is completely broken #96


  • New
  • Defect
Open
Assigned to _ForgeUser8860360
  • RezzedUp created this issue Jun 28, 2015

    Using the latest Umbaska: 2806150849

    This expression, set {_string.object} to json string "key" from {_json.object} is broken:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    [12:25:27 ERROR]: #!#!
    [12:25:27 ERROR]: #!#! [Skript] Severe Error:
    [12:25:27 ERROR]: #!#!
    [12:25:27 ERROR]: #!#! If you're developing an add-on for Skript this likely means that you have done something wrong.
    [12:25:27 ERROR]: #!#! If you're a server admin however please go to http://dev.bukkit.org/server-mods/skript/tickets/
    [12:25:27 ERROR]: #!#! and check whether this error has already been reported.
    [12:25:27 ERROR]: #!#! If not please create a new ticket with a meaningful title, copy & paste this whole error into it,
    [12:25:27 ERROR]: #!#! and describe what you did before it happened and/or what you think caused the error.
    [12:25:27 ERROR]: #!#! If you think that it's a trigger that's causing the error please post the trigger as well.
    [12:25:27 ERROR]: #!#! By following this guide fixing the error should be easy and done fast.
    [12:25:27 ERROR]: #!#!
    [12:25:27 ERROR]: #!#! Stack trace:
    [12:25:27 ERROR]: #!#! org.json.JSONException: A JSONArray text must start with '[' at 1 [character 2 line 1]
    [12:25:27 ERROR]: #!#!     at org.json.JSONTokener.syntaxError(JSONTokener.java:445)
    [12:25:27 ERROR]: #!#!     at org.json.JSONArray.<init>(JSONArray.java:105)
    [12:25:27 ERROR]: #!#!     at org.json.JSONArray.<init>(JSONArray.java:142)
    [12:25:27 ERROR]: #!#!     at uk.co.umbaska.Misc.ExprGetJSONString.get(ExprGetJSONString.java:61)
    [12:25:27 ERROR]: #!#!     at uk.co.umbaska.Misc.ExprGetJSONString.get(ExprGetJSONString.java:21)
    [12:25:27 ERROR]: #!#!     at ch.njol.skript.lang.util.SimpleExpression.getArray(SimpleExpression.java:103)
    [12:25:27 ERROR]: #!#!     at ch.njol.skript.effects.EffChange.execute(EffChange.java:270)
    [12:25:27 ERROR]: #!#!     at ch.njol.skript.lang.Effect.run(Effect.java:54)
    [12:25:27 ERROR]: #!#!     at ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:63)
    [12:25:27 ERROR]: #!#!     at ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:91)
    [12:25:27 ERROR]: #!#!     at com.w00tmast3r.skquery.elements.effects.EffOptionThread$1.run(EffOptionThread.java:43)
    [12:25:27 ERROR]: #!#!     at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71)
    [12:25:27 ERROR]: #!#!     at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350)
    [12:25:27 ERROR]: #!#!     at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:726)
    [12:25:27 ERROR]: #!#!     at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:367)
    [12:25:27 ERROR]: #!#!     at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:657)
    [12:25:27 ERROR]: #!#!     at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:560)
    [12:25:27 ERROR]: #!#!     at java.lang.Thread.run(Thread.java:745)
    [12:25:27 ERROR]: #!#!
    [12:25:27 ERROR]: #!#! Version Information:
    [12:25:27 ERROR]: #!#!   Skript: 2.2-SNAPSHOT
    [12:25:27 ERROR]: #!#!   Bukkit: 1.8.7-R0.1-SNAPSHOT
    [12:25:27 ERROR]: #!#!   Minecraft: 1.8.7
    [12:25:27 ERROR]: #!#!   Java: 1.8.0_45 (Java HotSpot(TM) 64-Bit Server VM 25.45-b02)
    [12:25:27 ERROR]: #!#!   OS: Linux amd64 3.14.32-xxxx-grs-ipv6-64
    [12:25:27 ERROR]: #!#!
    [12:25:27 ERROR]: #!#! Running CraftBukkit: false
    [12:25:27 ERROR]: #!#!
    [12:25:27 ERROR]: #!#! Current node: null
    [12:25:27 ERROR]: #!#! Current item: set {_code}(as java.lang.Object) to get json string
    [12:25:27 ERROR]: #!#!
    [12:25:27 ERROR]: #!#! Thread: Server thread
    [12:25:27 ERROR]: #!#!
    [12:25:27 ERROR]: #!#! End of Error.
    [12:25:27 ERROR]: #!#!
    
  • RezzedUp added the tags New Defect Jun 28, 2015
  • _ForgeUser8860360 posted a comment Jun 28, 2015

    What is {_json.object} storing?

  • RezzedUp posted a comment Jun 28, 2015

    @Nfell2009: Go

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    command /test:
        trigger:
            set {_json.object} to "{""key"":""value"",""somethingElse"":""amazing""}"
            broadcast {_json.object}
            set {_string.object} to json string """key""" from {_json.object}
            broadcast {_string.object}
            
    command /test2:
        trigger:
            set {_json.object} to "{key:""value"",somethingElse:""amazing""}"
            broadcast {_json.object}
            set {_string.object} to json string "key" from {_json.object}
            broadcast {_string.object}
            
    command /test3:
        trigger:
            set {_json.object} to "[{""key"":""value""},{""somethingElse"":""amazing""}]"
            broadcast {_json.object}
            set {_string.object} to json string """key""" from {_json.object}
            broadcast {_string.object}
            
    command /test4:
        trigger:
            set {_json.object} to "[{key:""value""},{somethingElse:""amazing""}]"
            broadcast {_json.object}
            set {_string.object} to json string "key" from {_json.object}
            broadcast {_string.object}
    

  • _ForgeUser8860360 posted a comment Jun 28, 2015

    Put a [ at the start and a ] at the end.

  • RezzedUp posted a comment Jun 28, 2015

    @Nfell2009: Go

    Test3 & Test4 both have brackets surrounding them.

  • RezzedUp posted a comment Jun 28, 2015

    Well, I can see my mistake here...

    But with the json in this new spot,

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    command /test:
        trigger:
            set {_json.object} to "{""key"":""value"",""somethingElse"":""amazing""}"
            broadcast {_json.object}
            set {_string.object} to json string {_json.object} from "key"
            broadcast {_string.object}
            
    command /test2:
        trigger:
            set {_json.object} to "{key:""value"",somethingElse:""amazing""}"
            broadcast {_json.object}
            set {_string.object} to json string {_json.object} from "key"
            broadcast {_string.object}
            
    command /test3:
        trigger:
            set {_json.object} to "[{""key"":""value""},{""somethingElse"":""amazing""}]"
            broadcast {_json.object}
            set {_string.object} to json string {_json.object} from "key"
            broadcast {_string.object}
            
    command /test4:
        trigger:
            set {_json.object} to "[{key:""value""},{somethingElse:""amazing""}]"
            broadcast {_json.object}
            set {_string.object} to json string {_json.object} from "key"
            broadcast {_string.object}
    

    my results are:

  • _ForgeUser8860360 posted a comment Jun 28, 2015

    My bad... I think I did that at 2am again <3 Want me to change it ;p

  • RezzedUp posted a comment Jun 28, 2015

    @Nfell2009: Go

    Yes please <3

  • Gamebuster19901 posted a comment Jun 28, 2015

    Double your curly brackets.

    command /test:
        trigger:
            set {_json.object} to "{{""key"":""value"",""somethingElse"":""amazing""}}"
            broadcast {_json.object}
            set {_string.object} to json string {_json.object} from "key"
            broadcast {_string.object}
    

    Edited Jun 28, 2015

To post a comment, please login or register a new account.