Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将参数从JavaScript(jQuery)传递到基于Java的REST服务的最佳实践?_Java_Javascript_Jquery_Json_Url - Fatal编程技术网

将参数从JavaScript(jQuery)传递到基于Java的REST服务的最佳实践?

将参数从JavaScript(jQuery)传递到基于Java的REST服务的最佳实践?,java,javascript,jquery,json,url,Java,Javascript,Jquery,Json,Url,我制作了一个基于jQuery的小部件,其配置如下: jQuery("#foo").widget("service", { output : "test_output_field", parameters : {'format' : 'json', 'limit' : 20, 'services' : {'service1' : {}, '

我制作了一个基于jQuery的小部件,其配置如下:

jQuery("#foo").widget("service", {
    output : "test_output_field",
    parameters : {'format' : 'json',
                    'limit' : 20,
                    'services' : {'service1' : {},
                                'service2' : {'language' : 'en', 'type' : 'solid', 'parent' : 'father'},
                                'service3' : {'type' : 'big', 'strict' : 'true', 'filter' : 'all' }
                                }
    }
});
“格式”和“限制”等参数易于处理;我只是把它们放在查询字符串中

服务配置部分就是问题所在。唯一不变的是,这里有任意数量的服务“service1-3”,具有特定于某个服务的不同数量的参数

我曾尝试在JSON字符串中配置它们,但Java可用的解析器充其量也很糟糕。我可以将配置解析为url参数,如&service2_language=en,但url可能会变得太长而无法处理

你会怎么做

Java可用的[JSON]解析器充其量也很糟糕


不知怎的,我觉得这很难相信。您使用的是哪种解析器,问题出在哪里?

包含JSON数据的长URL确实会导致潜在的问题,例如长度、转义等,因此您确实应该使用POST方法处理正文中的数据。我仍然认为JSON是序列化的最佳选择,因为它在Javascript中受到了本机的支持。您是否使用jQuery或Prototype进行客户端序列化


YAML是另一个相当简单的选择。我使用Java YAML解析,尽管YAML实现中偶尔也会出现差异。

json.org原始版本和json-lib.sourceforge.net版本。我想要的是获得JSON数据的数组或嵌套数组,而不需要所有状态机式的异常处理。据我所知,json.org不支持这一点,我也无法让后者在这方面发挥作用。有更好的选择吗?我说的更好,是指更干净、不花哨的JSON解析解决方案。也许会有帮助。这就是我第一次想到使用JSON的原因。目前我倾向于使用一些任意的语法来实现这一点。你说json-lib.sourceforge.net支持你想要做的事情,但你无法让它工作。为什么不请SO社区帮助您解决这个具体问题?在我看来,这比试着做你自己的事情要好。你是对的。然而,有了这个问题,我试图得到一个意见,如果使用JSON或其他完全不同的东西,将是通过url传输参数的最佳解决方案?请随时报告问题