• 【JAVA UI】HarmonyOS使用ZSONObject对象转化json数据


     参考资料

    ZSONObject

    api方法讲解

    stringToZSON(string text)

    说明:json 字符串转为ZSONObject对象

    • 参数

      参数名类型必填说明
      textstring传入json字符串
    • 示例

       ZSONObject zsonObject= ZSONObject.stringToZSON(jsonStr);

    toString():

    说明:ZSONObject对象转化为json字符串

    • 返回值

      类型说明
      String返回的json字符串
    • 示例

      String  jsonStr=jsonObject.toString();
      

    put

    public Object put(String key, Object value)

    说明:将指定的键值对放置到此ZSONObject的映射中。

    • 参数:
    类型说明
    key表示要存储在此ZSONObject的映射中的key。
    value表示要存储在此ZSONObject的映射中的value。
    • 示例

       jsonObject.put("key","value");

    get

    public Object get(Object key)

    获取此ZSONObject映射中指定键匹配的对象。

    • 参数
    类型说明
    key表示存储在此ZSONObject映射中的key。
    • 示例
     Object Value= zsonObject.get("key");

    代码运行

    准备的工作

    创建一个User类,包含Name和Age的属性,代码如下

    1. package com.harmony.alliance.myapplication.model;
    2. public class User {
    3. private String name;
    4. private int age;
    5. @Override
    6. public String toString() {
    7. return "User{" +
    8. "name='" + name + '\'' +
    9. ", age=" + age +
    10. '}';
    11. }
    12. public String getName() {
    13. return name;
    14. }
    15. public void setName(String name) {
    16. this.name = name;
    17. }
    18. public int getAge() {
    19. return age;
    20. }
    21. public void setAge(int age) {
    22. this.age = age;
    23. }
    24. }

    xml布局

    在xml布局上绘画三个Text组件,分别用于java对象转化json、json字符串转化为user对象,显示结果,代码如下

    1. <DirectionalLayout
    2. ohos:id="$+id:directionlayout"
    3. xmlns:ohos="http://schemas.huawei.com/res/ohos"
    4. ohos:height="match_parent"
    5. ohos:width="match_parent"
    6. ohos:alignment="center|top"
    7. ohos:orientation="vertical">
    8. <Text
    9. ohos:id="$+id:toJson"
    10. ohos:height="100vp"
    11. ohos:width="match_parent"
    12. ohos:layout_alignment="horizontal_center"
    13. ohos:multiple_lines="true"
    14. ohos:text_size="40vp"
    15. ohos:text="对象转化为json字符串"
    16. />
    17. <Text
    18. ohos:id="$+id:parseJson"
    19. ohos:height="100vp"
    20. ohos:width="match_parent"
    21. ohos:layout_alignment="horizontal_center"
    22. ohos:multiple_lines="true"
    23. ohos:text_size="40vp"
    24. ohos:text="json转化为对象"
    25. ohos:background_element="#ed6262"
    26. />
    27. <Text
    28. ohos:id="$+id:result"
    29. ohos:height="match_parent"
    30. ohos:width="match_parent"
    31. ohos:layout_alignment="horizontal_center"
    32. ohos:multiple_lines="true"
    33. ohos:text_size="40vp"
    34. ohos:text="显示结果"
    35. />
    36. DirectionalLayout>

    效果如下

    cke_9652.png

    java 代码

    第一步:实现text点击功能对java对象怎么转化为json字符串,代码如下

    1. mTextToJson.setClickedListener(new Component.ClickedListener() {
    2. @Override
    3. public void onClick(Component component) {
    4. //初始化User 对象,并且对user实现实例化
    5. ZSONObject jsonObject = new ZSONObject();
    6. jsonObject.put("name","luck");
    7. jsonObject.put("age",18);
    8. jsonStr=jsonObject.toString();
    9. mTextResult.setText("显示结果:"+jsonStr);
    10. }
    11. });

    第二步:实现json字符串转化为user对象,代码如下

    1. mTextParseJson.setClickedListener(new Component.ClickedListener() {
    2. @Override
    3. public void onClick(Component component) {
    4. ZSONObject zsonObject= ZSONObject.stringToZSON(jsonStr);
    5. String name= (String) zsonObject.get("name");
    6. int age=zsonObject.getInteger("age");
    7. //todo 初始化User 对象,然后封装为user 对象
    8. User user=new User();
    9. user.setName(name);
    10. user.setAge(age);
    11. mTextResult.setText("json转化为User对象显示结果:"+user.toString());
    12. }
    13. });

    运行效果

    java全部代码

    1. package com.harmony.alliance.myapplication.slice;
    2. import com.harmony.alliance.myapplication.ResourceTable;
    3. import com.harmony.alliance.myapplication.model.User;
    4. import ohos.aafwk.ability.AbilitySlice;
    5. import ohos.aafwk.content.Intent;
    6. import ohos.agp.components.Component;
    7. import ohos.agp.components.Text;
    8. import ohos.utils.zson.ZSONObject;
    9. public class MainAbilitySlice extends AbilitySlice {
    10. private Text mTextToJson,mTextParseJson,mTextResult;
    11. private String jsonStr;
    12. @Override
    13. public void onStart(Intent intent) {
    14. super.onStart(intent);
    15. super.setUIContent(ResourceTable.Layout_ability_main);
    16. mTextToJson=findComponentById(ResourceTable.Id_toJson);
    17. mTextParseJson=findComponentById(ResourceTable.Id_parseJson);
    18. mTextResult=findComponentById(ResourceTable.Id_result);
    19. mTextToJson.setClickedListener(new Component.ClickedListener() {
    20. @Override
    21. public void onClick(Component component) {
    22. //初始化User 对象,并且对user实现实例化
    23. ZSONObject jsonObject = new ZSONObject();
    24. jsonObject.put("name","luck");
    25. jsonObject.put("age",18);
    26. jsonStr=jsonObject.toString();
    27. mTextResult.setText("显示结果:"+jsonStr);
    28. }
    29. });
    30. mTextParseJson.setClickedListener(new Component.ClickedListener() {
    31. @Override
    32. public void onClick(Component component) {
    33. ZSONObject zsonObject= ZSONObject.stringToZSON(jsonStr);
    34. String name= (String) zsonObject.get("name");
    35. int age=zsonObject.getInteger("age");
    36. //todo 初始化User 对象,然后封装为user 对象
    37. User user=new User();
    38. user.setName(name);
    39. user.setAge(age);
    40. mTextResult.setText("json转化为User对象显示结果:"+user.toString());
    41. }
    42. });
    43. }
    44. }

    运行效果

    222222222.gif

     欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

  • 相关阅读:
    计算机毕业设计Java的工资管理系统(源码+系统+mysql数据库+lw文档)
    如何在前端传递一个String 的变量和一个obj对象到后端,然后被Java后端接收
    自动气象站和气象信息网络
    python二级题库 第四套 附刷题软件
    WEB前端应该学什么?学习到什么程度可以去找工作?附详细学习路线
    uniapp开发小程序—picker结合后台数据实现二级联动的选择
    257. 关押罪犯
    【NOI模拟赛】背包(优先队列,贪心)
    【NOI模拟赛】最大生成树(Brouvka算法,并查集)
    centos 7无需token编译安装freeswitch 1.10.11 ——筑梦之路
  • 原文地址:https://blog.csdn.net/weixin_44708240/article/details/125897295