Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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
在struts 2中使用OGNL解析JSON对象_Json_Jsp_Struts2_Ognl - Fatal编程技术网

在struts 2中使用OGNL解析JSON对象

在struts 2中使用OGNL解析JSON对象,json,jsp,struts2,ognl,Json,Jsp,Struts2,Ognl,我有一门动作课,像 public class DataProcessor extends ActionSupport{ private JSONObject object; public JSONObject getObject() { return object; } public void setObject(JSONObject object) { this.object = object; } @Ov

我有一门动作课,像

public class DataProcessor extends ActionSupport{

    private JSONObject object;

    public JSONObject getObject() {
        return object;
    }

    public void setObject(JSONObject object) {
        this.object = object;
    }

    @Override
    public String execute() throws Exception {
        .......
        return SUCCESS;
    }
} 
我的XML映射类似于

<package name="default" extends="struts-default" namespace="/">
   <action name="process" class="com.demo.DataProcessor">
      <result type="success">home.jsp</result>
   </action>
</package>

home.jsp
在jsp页面上,如果我写
,它将打印json数据。如果我写信

<s:property value="object.name"/>


它什么也不打印。

如何在jsp页面中解析json对象?

您可以使用库函数
parseJSON
解析json,如本例所示

<s:textfield id="name" name="name"/>
<s:textfield id="mobile" name="mobile"/>    
<script type="text/javascript">
  $(document).ready(function() {
    var obj = $.parseJSON('<s:property value="object"/>');
    $("name").val(obj.name);
    $("mobile").val(obj.mobile);
  });
</script>

$(文档).ready(函数(){
var obj=$.parseJSON(“”);
$(“名称”).val(对象名称);
$(“mobile”).val(obj.mobile);
});

此脚本将替换呈现JSP时填充的操作bean中的值(如果有)。文本字段应该相应地映射到动作bean。

您不需要解析JSON,只需要从中检索值。假设您的
对象
org.json.JSONObject
,您可以通过调用
get
方法并将键作为字符串传递来从中获取值

<s:property value="object.get('name')"/>


你有json对象吗?为什么需要解析它?我得到的对象类似于“{name:lalit,mobile:99999999}”,并且它以相同的格式打印。我想分别打印姓名和手机。您的
对象是什么类型的?是不是
org.json.JSONObject
?json对象不是JavaBean,您不能像现在这样访问它。正如Aleksandr所说,您必须使用它自己的访问机制。不过,在服务器端转换它可能更容易。如果您只需要JavaScript,那么按照Roman的说法解析它会更好。
<s:textfield id="name" name="name"/>
<s:textfield id="mobile" name="mobile"/>    
<script type="text/javascript">
  $(document).ready(function() {
    var obj = $.parseJSON('<s:property value="object"/>');
    $("name").val(obj.name);
    $("mobile").val(obj.mobile);
  });
</script>
<s:property value="object.get('name')"/>