gpt4 book ai didi

javascript - 如何用键值对数据的值解析 'HttpServletRequest'

转载 作者:行者123 更新时间:2023-11-30 17:10:14 27 4
gpt4 key购买 nike

我从我的客户端向我的服务器发送一个 ajax 请求。

这是我传递的数据结构:

data = {"key1" : "value1" , "key2" : {"subkey1": "subvalue1" ,"subkey2" : "subvalue2"}};

在服务器端我正在做以下事情:

   private Map<String, Object> parseItemData(HttpServletRequest request) {

Enumeration<String> parameterNames = request.getParameterNames();

while (parameterNames.hasMoreElements()) {

String paramName = parameterNames.nextElement();

String[] paramValues = request.getParameterValues(paramName);

if(paramName.equals("itemSpecifics"))
{
System.out.println(paramName);

for (int i =0 ; i<paramValues.length; i++)
{
System.out.println(paramName +": "+paramValues[i] );
}
}
}
return item;
}

这是我得到的输出:

itemSpecifics: [object Object]

有什么办法吗?


解决方案:

在嵌套键值对的情况下,我必须手动使用 JSON.stringify() 作为嵌套键值,以便将其作为 JSON 发送。

最佳答案

这可能对你有帮助。

使用getParameterMap()方法获取所有键值对。

Map<String, String[]> requestParams = request.getParameterMap();

获取JSONObject的代码如下:

JSONObject jsonObject=null;
Map<String,String> out = new HashMap<String, String>();
Map<String,String[]> map = request.getParameterMap();

for (Map.Entry<String,String[]> mapEntry : map.entrySet()) {

String value[] = mapEntry.getValue();
Object object = value.length == 1 ? value[0] : value;
try {
jsonObject = new JSONObject((String)object);
parse(jsonObject,out);

} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
response.getWriter().print(out);

要解析 json,请使用解析函数:我已从 How can I iterate JSONObject to get individual items 获得帮助

public static Map<String,String> parse(JSONObject json , Map<String,String> out) throws JSONException{
Iterator<String> keys = json.keys();
while(keys.hasNext()){
String key = keys.next();
String val = null;
try{
JSONObject value = json.getJSONObject(key);
parse(value,out);
}catch(Exception e){
val = json.getString(key);
}

if(val != null){
out.put(key,val);
}
}
return out;
}

关于javascript - 如何用键值对数据的值解析 'HttpServletRequest',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27177897/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com