Android activity常用传值Json字符串传字符串传对象传集合

Android开发中JSON处理与性能优化实践 JSON作为轻量级数据交换格式,在移动开发中广泛用于网络通信和数据持久化。其核心原理是基于键值对的结构化存储,通过序列化与反序列化实现数据转换。在Android平台上,高效的JSON处理能显著提升应用响应速度和内存效率。主流方案包括Gson、Moshi等序列化库,它们通过反射或代码生成技术实现对象映射。在Activity间传递数据时,Parcelable方案相比传统JSON字符串解析可降低50%以上的性能开销。这些优化技术特别适用于电商APP商品列表、社交平台消息流等高频率JSON处理场景,其中Moshi库 阅读详情

开发中我们常常需要在页面之间进行传值,今天讲下用json传值,

简单点讲json传值即把对象转成字符串传递接收后再解析成对象,

网上那些解析方法都是很繁琐不适合日常开发,我们可以直接用

Google 的gson

工欲善其事必先利其器,我们先先依赖GSON

下载gson jar包或者直接依赖

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.0</version>
</dependency>
底下是一个对gson封装的utils,直接cv到你的代码即可。

**
 * 包含操作 {@code JSON} 数据的常用方法的工具类。
 * <p />
 * 该工具类使用的 {@code JSON} 转换引擎是 {@code Google Gson}</a>。 下面是工具类的使用案例: //解析json数组
 * JSONUtils.fromJson(content, new TypeToken<ListVO<Config>>() {}); //解析json对象
 * JSONUtils.fromJson(content, new TypeToken<Result>() {});
 */
public class JSONUtils {
   /**
    * 空的 {@code JSON} 数据 -
    * 
    * <pre>
    * &quot;{}&quot;
    * </pre>
    * 
    * 。
    */
   public static final String EMPTY_JSON = "{}";

   /** 空的 {@code JSON} 数组(集合)数据 - {@code "[]"}。 */
   public static final String EMPTY_JSON_ARRAY = "[]";

   /** 默认的 {@code JSON} 日期/时间字段的格式化模式。 */
   public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd HH:mm:ss SSS";

   /**
    * {@code Google Gson} 的
    * 
    * <pre>
    * @Since
    * </pre>
    * 
    * 注解常用的版本号常量 - {@code 1.0}。
    */
   public static final double SINCE_VERSION_10 = 1.0d;

   /**
    * {@code Google Gson} 的
    * 
    * <pre>
    * @Since
    * </pre>
    * 
    * 注解常用的版本号常量 - {@code 1.1}。
    */
   public static final double SINCE_VERSION_11 = 1.1d;

   /**
    * {@code Google Gson} 的
    * 
    * <pre>
    * @Since
    * </pre>
    * 
    * 注解常用的版本号常量 - {@code 1.2}。
    */
   public static final double SINCE_VERSION_12 = 1.2d;

   /**
    * {@code Google Gson} 的
    * 
    * <pre>
    * @Until
    * </pre>
    * 
    * 注解常用的版本号常量 - {@code 1.0}。
    */
   public static final double UNTIL_VERSION_10 = SINCE_VERSION_10;

   /**
    * {@code Google Gson} 的
    * 
    * <pre>
    * @Until
    * </pre>
    * 
    * 注解常用的版本号常量 - {@code 1.1}。
    */
   public static final double UNTIL_VERSION_11 = SINCE_VERSION_11;

   /**
    * {@code Google Gson} 的
    * 
    * <pre>
    * @Until
    * </pre>
    * 
    * 注解常用的版本号常量 - {@code 1.2}。
    */
   public static final double UNTIL_VERSION_12 = SINCE_VERSION_12;

   /**
    * <p>
    * 
    * <pre>
    * JSONUtils
    * </pre>
    * 
    * instances should NOT be constructed in standard programming. Instead, the
    * class should be used as
    * 
    * <pre>
    * JSONUtils.fromJson(&quot;foo&quot;);
    * </pre>
    * 
    * .
    * </p>
    * <p>
    * This constructor is public to permit tools that require a JavaBean
    * instance to operate.
    * </p>
    */
   public JSONUtils() {
      super();
   }
   
   /**
    * 将给定的目标对象根据指定的条件参数转换成 {@code JSON} 格式的字符串。
    * <p />
    * <strong>该方法转换发生错误时,不会抛出任何异常。若发生错误时,曾通对象返回
    * 
    * <pre>
    * &quot;{}&quot;
    * </pre>
    * 
    * ; 集合或数组对象返回
    * 
    * <pre>
    * &quot;[]&quot;
    * </pre>
    * 
    * </strong>
    * 
    * @param target
    *            目标对象。
    * @param targetType
    *            目标对象的类型。
    * @param isSerializeNulls
    *            是否序列化 {@code null} 值字段。
    * @param version
    *            字段的版本号注解。
    * @param datePattern
    *            日期字段的格式化模式。
    * @param excludesFieldsWithoutExpose
    *            是否排除未标注 {@literal @Expose} 注解的字段。
    * @return 目标对象的 {@code JSON} 格式的字符串。
    * @since 1.0
    */
   public static String toJson(Object target, Type targetType,
         boolean isSerializeNulls, Double version, String datePattern,
         boolean excludesFieldsWithoutExpose) {
      if (target == null)
         return EMPTY_JSON;
      GsonBuilder builder = new GsonBuilder();
      if (isSerializeNulls)
         builder.serializeNulls();
      if (version != null)
         builder.setVersion(version.doubleValue());
      if (isBlank(datePattern))
         datePattern = DEFAULT_DATE_PATTERN;
      builder.setDateFormat(datePattern);
      if (excludesFieldsWithoutExpose)
         builder.excludeFieldsWithoutExposeAnnotation();
      return toJson(target, targetType, builder);
   }

   /**
    * 将给定的目标对象转换成 {@code JSON} 格式的字符串。<strong>此方法只用来转换普通的 {@code JavaBean}
    * 对象。</strong>
    * <ul>
    * <li>该方法只会转换标有 {@literal @Expose} 注解的字段;</li>
    * <li>该方法不会转换 {@code null} 值字段;</li>
    * <li>该方法会转换所有未标注或已标注 {@literal @Since} 的字段;</li>
    * <li>该方法转换时使用默认的 日期/时间 格式化模式 - {@code yyyy-MM-dd HH:mm:ss SSS};</li>
    * </ul>
    * 
    * @param target
    *            要转换成 {@code JSON} 的目标对象。
    * @return 目标对象的 {@code JSON} 格式的字符串。
    * @since 1.0
    */
   public static String toJson(Object target) {
      return toJson(target, null, true, null, null, false);
   }

   /**
    * protect 修饰的字段过滤掉
    * @param target
    * @return
    */
   public static String toJsonWithoutProtected(Object target) {
      if (target == null)
         return EMPTY_JSON;
      GsonBuilder builder = new GsonBuilder();
      builder.serializeNulls();
      builder.excludeFieldsWithModifiers(Modifier.PROTECTED);
      return toJson(target, null, builder);
   }

   /**
    * 将给定的目标对象转换成 {@code JSON} 格式的字符串。<strong>此方法只用来转换普通的 {@code JavaBean}
    * 对象。</strong>
    * <ul>
    * <li>该方法只会转换标有 {@literal @Expose} 注解的字段;</li>
    * <li>该方法不会转换 {@code null} 值字段;</li>
    * <li>该方法会转换所有未标注或已标注 {@literal @Since} 的字段;</li>
    * </ul>
    * 
    * @param target
    *            要转换成 {@code JSON} 的目标对象。
    * @param datePattern
    *            日期字段的格式化模式。
    * @return 目标对象的 {@code JSON} 格式的字符串。
    * @since 1.0
    */
   public static String toJson(Object target, String datePattern) {
      return toJson(target, null, false, null, datePattern, true);
   }

   /**
    * 将给定的目标对象转换成 {@code JSON} 格式的字符串。<strong>此方法只用来转换普通的 {@code JavaBean}
    * 对象。</strong>
    * <ul>
    * <li>该方法只会转换标有 {@literal @Expose} 注解的字段;</li>
    * <li>该方法不会转换 {@code null} 值字段;</li>
    * <li>该方法转换时使用默认的 日期/时间 格式化模式 - {@code yyyy-MM-dd HH:mm:ss SSS};</li>
    * </ul>
    * 
    * @param target
    *            要转换成 {@code JSON} 的目标对象。
    * @param version
    *            字段的版本号注解({@literal @Since})。
    * @return 目标对象的 {@code JSON} 格式的字符串。
    * @since 1.0
    */
   public static String toJson(Object target, Double version) {
      return toJson(target, null, false, version, null, true);
   }

   /**
    * 将给定的目标对象转换成 {@code JSON} 格式的字符串。<strong>此方法只用来转换普通的 {@code JavaBean}
    * 对象。</strong>
    * <ul>
    * <li>该方法不会转换 {@code null} 值字段;</li>
    * <li>该方法会转换所有未标注或已标注 {@literal @Since} 的字段;</li>
    * <li>该方法转换时使用默认的 日期/时间 格式化模式 - {@code yyyy-MM-dd HH:mm:ss SSS};</li>
    * </ul>
    * 
    * @param target
    *            要转换成 {@code JSON} 的目标对象。
    * @param excludesFieldsWithoutExpose
    *            是否排除未标注 {@literal @Expose} 注解的字段。
    * @return 目标对象的 {@code JSON} 格式的字符串。
    * @since 1.0
    */
   public static String toJson(Object target,
         boolean excludesFieldsWithoutExpose) {
      return toJson(target, null, false, null, null,
            excludesFieldsWithoutExpose);
   }

   /**
    * 将给定的目标对象转换成 {@code JSON} 格式的字符串。<strong>此方法只用来转换普通的 {@code JavaBean}
    * 对象。</strong>
    * <ul>
    * <li>该方法不会转换 {@code null} 值字段;</li>
    * <li>该方法转换时使用默认的 日期/时间 格式化模式 - {@code yyyy-MM-dd HH:mm:ss SSS};</li>
    * </ul>
    * 
    * @param target
    *            要转换成 {@code JSON} 的目标对象。
    * @param version
    *            字段的版本号注解({@literal @Since})。
    * @param excludesFieldsWithoutExpose
    *            是否排除未标注 {@literal @Expose} 注解的字段。
    * @return 目标对象的 {@code JSON} 格式的字符串。
    * @since 1.0
    */
   public static String toJson(Object target, Double version,
         boolean excludesFieldsWithoutExpose) {
      return toJson(target, null, false, version, null,
            excludesFieldsWithoutExpose);
   }

   /**
    * 将给定的目标对象转换成 {@code JSON} 格式的字符串。<strong>此方法通常用来转换使用泛型的对象。</strong>
    * <ul>
    * <li>该方法只会转换标有 {@literal @Expose} 注解的字段;</li>
    * <li>该方法不会转换 {@code null} 值字段;</li>
    * <li>该方法会转换所有未标注或已标注 {@literal @Since} 的字段;</li>
    * <li>该方法转换时使用默认的 日期/时间 格式化模式 - {@code yyyy-MM-dd HH:mm:ss SSSS};</li>
    * </ul>
    * 
    * @param target
    *            要转换成 {@code JSON} 的目标对象。
    * @param targetType
    *            目标对象的类型。
    * @return 目标对象的 {@code JSON} 格式的字符串。
    * @since 1.0
    */
   public static String toJson(Object target, Type targetType) {
      return toJson(target, targetType, false, null, null, true);
   }

   /**
    * 将给定的目标对象转换成 {@code JSON} 格式的字符串。<strong>此方法通常用来转换使用泛型的对象。</strong>
    * <ul>
    * <li>该方法只会转换标有 {@literal @Expose} 注解的字段;</li>
    * <li>该方法不会转换 {@code null} 值字段;</li>
    * <li>该方法转换时使用默认的 日期/时间 格式化模式 - {@code yyyy-MM-dd HH:mm:ss SSSS};</li>
    * </ul>
    * 
    * @param target
    *            要转换成 {@code JSON} 的目标对象。
    * @param targetType
    *            目标对象的类型。
    * @param version
    *            字段的版本号注解({@literal @Since})。
    * @return 目标对象的 {@code JSON} 格式的字符串。
    * @since 1.0
    */
   public static String toJson(Object target, Type targetType, Double version) {
      return toJson(target, targetType, false, version, null, true);
   }

   /**
    * 将给定的目标对象转换成 {@code JSON} 格式的字符串。<strong>此方法通常用来转换使用泛型的对象。</strong>
    * <ul>
    * <li>该方法不会转换 {@code null} 值字段;</li>
    * <li>该方法会转换所有未标注或已标注 {@literal @Since} 的字段;</li>
    * <li>该方法转换时使用默认的 日期/时间 格式化模式 - {@code yyyy-MM-dd HH:mm:ss SSS};</li>
    * </ul>
    * 
    * @param target
    *            要转换成 {@code JSON} 的目标对象。
    * @param targetType
    *            目标对象的类型。
    * @param excludesFieldsWithoutExpose
    *            是否排除未标注 {@literal @Expose} 注解的字段。
    * @return 目标对象的 {@code JSON} 格式的字符串。
    * @since 1.0
    */
   public static String toJson(Object target, Type targetType,
         boolean excludesFieldsWithoutExpose) {
      return toJson(target, targetType, false, null, null,
            excludesFieldsWithoutExpose);
   }

   /**
    * 将给定的目标对象转换成 {@code JSON} 格式的字符串。<strong>此方法通常用来转换使用泛型的对象。</strong>
    * <ul>
    * <li>该方法不会转换 {@code null} 值字段;</li>
    * <li>该方法转换时使用默认的 日期/时间 格式化模式 - {@code yyyy-MM-dd HH:mm:ss SSS};</li>
    * </ul>
    * 
    * @param target
    *            要转换成 {@code JSON} 的目标对象。
    * @param targetType
    *            目标对象的类型。
    * @param version
    *            字段的版本号注解({@literal @Since})。
    * @param excludesFieldsWithoutExpose
    *            是否排除未标注 {@literal @Expose} 注解的字段。
    * @return 目标对象的 {@code JSON} 格式的字符串。
    * @since 1.0
    */
   public static String toJson(Object target, Type targetType, Double version,
         boolean excludesFieldsWithoutExpose) {
      return toJson(target, targetType, false, version, null,
            excludesFieldsWithoutExpose);
   }

   /**
    * 将给定的 {@code JSON} 字符串转换成指定的类型对象。
    * 
    * @param <T>
    *            要转换的目标类型。
    * @param json
    *            给定的 {@code JSON} 字符串。
    * @param token
    *            {@code com.google.gson.reflect.TypeToken} 的类型指示类对象。
    * @param datePattern
    *            日期格式模式。
    * @return 给定的 {@code JSON} 字符串表示的指定的类型对象。
    * @since 1.0
    */
   public static <T> T fromJson(String json, TypeToken<T> token,
         String datePattern) {
      if (isBlank(json)) {
         return null;
      }
      GsonBuilder builder = new GsonBuilder();
      if (isBlank(datePattern)) {
         datePattern = DEFAULT_DATE_PATTERN;
      }
      Gson gson = builder.create();
      try {
         return gson.fromJson(json, token.getType());
      } catch (Exception ex) {
         ex.printStackTrace();
         Log.e(/*json + */" 无法转换为 " + token.getRawType().getName() + " 对象!",
               ex.getMessage());
         return null;
      }
   }

   /**
    * 将给定的 {@code JSON} 字符串转换成指定的类型对象。
    * 
    * @param <T>
    *            要转换的目标类型。
    * @param json
    *            给定的 {@code JSON} 字符串。
    * @param token
    *            {@code com.google.gson.reflect.TypeToken} 的类型指示类对象。
    * @return 给定的 {@code JSON} 字符串表示的指定的类型对象。
    * @since 1.0
    */
   public static <T> T fromJson(String json, TypeToken<T> token) {
      return fromJson(json, token, null);
   }

   /**
    * 将给定的 {@code JSON} 字符串转换成指定的类型对象。<strong>此方法通常用来转换普通的 {@code JavaBean}
    * 对象。</strong>
    * 
    * @param <T>
    *            要转换的目标类型。
    * @param json
    *            给定的 {@code JSON} 字符串。
    * @param clazz
    *            要转换的目标类。
    * @param datePattern
    *            日期格式模式。
    * @return 给定的 {@code JSON} 字符串表示的指定的类型对象。
    * @since 1.0
    */
   public static <T> T fromJson(String json, Class<T> clazz, String datePattern) {
      if (isBlank(json)) {
         return null;
      }
      GsonBuilder builder = new GsonBuilder();
      if (isBlank(datePattern)) {
         datePattern = DEFAULT_DATE_PATTERN;
      }
      Gson gson = builder.create();
      try {
         return gson.fromJson(json, clazz);
      } catch (Exception ex) {
         Log.e(json + " 无法转换为 " + clazz.getName() + " 对象!", ex.getMessage());
         return null;
      }
   }

   /**
    * 将给定的 {@code JSON} 字符串转换成指定的类型对象。<strong>此方法通常用来转换普通的 {@code JavaBean}
    * 对象。</strong>
    * 
    * @param <T>
    *            要转换的目标类型。
    * @param json
    *            给定的 {@code JSON} 字符串。
    * @param clazz
    *            要转换的目标类。
    * @return 给定的 {@code JSON} 字符串表示的指定的类型对象。
    * @since 1.0
    */
   public static <T> T fromJson(String json, Class<T> clazz) {
      return fromJson(json, clazz, null);
   }

   /**
    * 将给定的目标对象根据{@code GsonBuilder} 所指定的条件参数转换成 {@code JSON} 格式的字符串。
    * <p />
    * 该方法转换发生错误时,不会抛出任何异常。若发生错误时,{@code JavaBean} 对象返回
    * 
    * <pre>
    * &quot;{}&quot;
    * </pre>
    * 
    * ; 集合或数组对象返回
    * 
    * <pre>
    * &quot;[]&quot;
    * </pre>
    * 
    * 。 其本基本类型,返回相应的基本值。
    * 
    * @param target
    *            目标对象。
    * @param targetType
    *            目标对象的类型。
    * @param builder
    *            可定制的{@code Gson} 构建器。
    * @return 目标对象的 {@code JSON} 格式的字符串。
    * @since 1.1
    */
   public static String toJson(Object target, Type targetType,
         GsonBuilder builder) {
      if (target == null)
         return EMPTY_JSON;
      Gson gson = null;
      if (builder == null) {
         gson = new Gson();
      } else {
         gson = builder.create();
      }
      String result = EMPTY_JSON;
      try {
         if (targetType == null) {
            result = gson.toJson(target);
         } else {
            result = gson.toJson(target, targetType);
         }
      } catch (Exception ex) {
         Log.w("目标对象 " + target.getClass().getName() + " 转换 JSON 字符串时,发生异常!",
               ex.getMessage());
         if (target instanceof Collection<?>
               || target instanceof Iterator<?>
               || target instanceof Enumeration<?>
               || target.getClass().isArray()) {
            result = EMPTY_JSON_ARRAY;
         }
      }
      return result;
   }

   private static boolean isBlank(String text) {
      return null == text || "".equals(text.trim());
   }

    public static String simpleObjectToJsonStr(Object obj,List<Class> claList) throws IllegalArgumentException, IllegalAccessException{
        if(obj==null){
            return "null";
        }
        String jsonStr = "{";
        Class<?> cla = obj.getClass();
        Field fields[] = cla.getDeclaredFields();
        for (Field field : fields) {
            field.setAccessible(true);
            if(field.getType() == long.class){
                jsonStr += "\""+field.getName()+"\":"+field.getLong(obj)+",";
            }else if(field.getType() == double.class){
                jsonStr += "\""+field.getName()+"\":"+field.getDouble(obj)+",";
            }else if(field.getType() == float.class){
                jsonStr += "\""+field.getName()+"\":"+field.getFloat(obj)+",";
            }else if(field.getType() == int.class){
                jsonStr += "\""+field.getName()+"\":"+field.getInt(obj)+",";
            }else if(field.getType() == boolean.class){
                jsonStr += "\""+field.getName()+"\":"+field.getBoolean(obj)+",";
            }else if(field.getType() == Integer.class||field.getType() == Boolean.class
                    ||field.getType() == Double.class||field.getType() == Float.class
                    ||field.getType() == Long.class){
                jsonStr += "\""+field.getName()+"\":"+field.get(obj)+",";
            }else if(field.getType() == String.class){
                jsonStr += "\""+field.getName()+"\":\""+field.get(obj)+"\",";
            }else if(field.getType().toString().endsWith("List")){
                String value = simpleListToJsonStr((List<?>)field.get(obj),claList);
                jsonStr += "\""+field.getName()+"\":"+value+",";
            }else{
                if(claList!=null&&claList.size()!=0&&claList.contains(field.getType())){
                    String value = simpleObjectToJsonStr(field.get(obj),claList);
                    jsonStr += "\""+field.getName()+"\":"+value+",";
                }else{
                    jsonStr += "\""+field.getName()+"\":null,";
                }
            }
        }
        jsonStr = jsonStr.substring(0,jsonStr.length()-1);
        jsonStr += "}";
        return jsonStr;
    }

    public static String simpleListToJsonStr(List<?> list,List<Class> claList) throws IllegalArgumentException, IllegalAccessException{
        if(list==null||list.size()==0){
            return "[]";
        }
        String jsonStr = "[";
        for (Object object : list) {
            jsonStr += simpleObjectToJsonStr(object,claList)+",";
        }
        jsonStr = jsonStr.substring(0,jsonStr.length()-1);
        jsonStr += "]";
        return jsonStr;
    }

}

然后就可以使用了,
1 对于集合
系列化
List<Bean> datas = generateData();
String str = JSONUtils.toJson(datas);
接收解析
List<FullCutGroup> prodInfoVOs = JSONUtils.fromJson(str, new TypeToken<List<
Bean
>>() {});
2对于对象
系列化
String str = JSONUtils.toJson(Bean);
接收解析
Bean bean= JSONUtils.fromJson(str, 
Bean.class);
是不是非常方便简单,有任何疑问或建议欢迎评论私信




Android无数据库版个人信息注册:Activity与Intent传值入门实战 Android开发入门阶段,掌握Activity生命周期、Intent页面跳转与控件事件监听是构建应用的基础能力。在UI交互层面,EditText、RadioGroup、CheckBox等表单控件的数据获取与传递,构成了绝大多数业务页面的核心逻辑。通过一个不依赖数据库的个人信息注册案例,开发者可以专注理解界面搭建、数据封装、Intent传值以及RecyclerView列表展示的完整链路。这种轻量级实现方式降低了学习曲线,让初学者先跑通内存数据流,再逐步过渡到SharedPreferences或Room持久化 阅读详情

相关推荐

Activity传递对象的3种方法(全)

使用3种方法完成一个对象的传递 demo种的对象包含如下类型int、String、boolean、数组、ArrayList、UUID、float类型,代码简单易懂,方便理解

Android向js传Json参数,接收到是object

切记添加这两个单引号,否则转的json串,在js接收会是[object object]

qq_40638618的博客 2027

java 对象与json字符串互相转换工具类

java 对象与json字符串互相转换工具类所需要的jar,java 对象与json字符串互相转换工具类

《JAVA从入门到精通视频》笔记七:方法、JVM内存结构

1.方法        方法是可以完成某个特定功能的并且可以被重复利用的代码片段。在C语言中,方法被称为“函数”。在java中,叫做方法。 2.方法的语法机制 [修饰符列表] 返回值类型 方法名(形式参数列表){        方法体; } 注:以上中括号[]里面的内容表示不是必须的,是可选的。 3.使用方法时注意:     &n

weixin_44384631的博客 643

【android开发】实体类和JSON字符串之间相互转化

用到gson-1.6.jar包,很容易的将实体类对象数据转化为JSON字符串,同理将json字符串转化为实体类对象数据。demo里面都有介绍,希望对大家有帮助。

保姆级教程:用Zemax 18.9复现单模光纤耦合仿真(附康宁SMF-28e参数)

本文提供了一份详细的Zemax 18.9单模光纤耦合仿真教程,以康宁SMF-28e为例,涵盖从软件设置、材料参数输入到系统构建和优化的全流程。通过光束耦合分析和物理光学传播(POP)技术,帮助用户准确模拟光纤耦合效率,并解决常见问题,适用于光学设计初学者和专业人士。

weixin_27330481的博客 316

Android 传递 json 字符串给前端 js

开发过程中,试验过用 Android 后台自定义 json 字符串传递给前端 js 时是不成功的,使用 java 创建的json对象在转的 json 字符串前端 js 才可以使用。 jsonObject.put()这句话一定要写在try{}里,不然会报错 @JavascriptInterface public String getVisitorsAccount(){ ...

weixin_44268101的博客 2126

八戒留档之宝塔部署edusoho

1.安装好基础的服务 2.上传你下载的代码到www/wwwroot文件3、配置网站 4.编辑创建的网站修改nginx文件 NGINX配置如下 server { listen 80; server_name 你的域名; root /www/wwwroot/项目文件名称/web/; location / { try_files $uri /app_dev.php$is_args$args; } ...

wolf23151269的博客 2541

Android和网页进行js交互的时候,json传参问题

如果网页调用安卓的方法,并且传递的参数为json格式的字符串, 例如: var json = {"name":"乔布斯","age":24,"company":"苹果公司"}; 直接将json作为参数传递:window.jsInterface.invokeMethod(json ); 这样,安卓端获取的参数不可用,打印出来是undefinded 网页中一定要这样处理一下,再作为参数传递:

烧烤的技术博客水文集合 5283

聚类分析(超全超详细版)

聚类分析是一种典型的无监督学习, 用于对未知类别的样本进行划分,将它们按照一定的规则划分成若干个类族,把相似(距高相近)的样本聚在同一个类簇中, 把不相似的样本分为不同类簇,从而揭示样本之间内在的性质以及相互之间的联系规律 聚类算法在银行、零售、保险、医学、军事等诸多领域有着广泛的应用 聚类分析基础 聚类分析的概念 聚类分析是根据在数据中发现的描述对象及其关系的信息,将数据对象分组。目的是...

Gfqwy2021 22万+

单细胞多组学数据整合分析实战:从原始数据到跨平台合并

本文详细介绍了单细胞多组学数据整合分析的实战流程,从原始数据处理到跨平台合并分析。通过Seurat和Harmony等工具的应用,帮助研究者有效解决批次效应问题,保留真实的生物学信号。文章包含代码示例和常见问题解决方案,特别适合需要进行单细胞合并分析的研究人员参考。

weixin_30752699的博客 92

WebView交互传递json字符串并解析

我们知道WebView交互中可以传递基本数据类型的数据值,比如常用的int,String. 但是WebView也可以传递一种很重要很常用的数据格式-json数据. 传递json和传递String数据是一样的,关键就是HTML5端对json数据通过eval()函数进行解析 传递过程中android端调用的最重要的一个函数就是: addJavascriptInterface(new MyObje

刘旭 4334

手把手教你用vLLM在昇腾910B上部署Qwen3-Embedding-8B模型(保姆级避坑指南)

本文详细介绍了如何在昇腾910B芯片上使用vLLM推理引擎部署Qwen3-Embedding-8B模型的全流程,包括环境准备、vLLM-ascend定制化安装、模型获取与校验、环境变量配置、服务启动参数优化、性能压测及生产级部署建议。特别针对昇腾生态的开发者,提供了保姆级的避坑指南和实用技巧,帮助实现高效稳定的模型部署。

weixin_28726671的博客 466

android activity 相互传值

传递单个简单类型的情况:Main.activityPass value:Intent intent = newIntent(MainActivity.this,SecondActivity.class); intent.putExtra("Main","123"); startActivityForResult(intent, 0);Get value from other activity@Ov...

forwardto9的专栏 1700

基因家族的鉴定-基于Windows系统上的HMMER

基因家族的鉴定-基于Windows系统上的HMMER。

liangjinghui123的博客 3255

Linux内核配置选项详解及编译过程

在内核编译完成后,可以通过重启系统并选择新编译的内核来使用它。可以在该菜单下选择需要编译进内核的设备驱动,也可以选择将设备驱动编译为模块。可以在该菜单下选择需要编译进内核的设备驱动,也可以选择将设备驱动编译为模块。可以选择需要的调试选项,并根据需要启用或禁用相应的功能。可以选择需要的文件系统类型,并根据需要启用或禁用相应的选项。可以选择需要的网络协议和功能,并根据需要启用或禁用相应的选项。可以选择需要的调试选项,并根据需要启用或禁用相应的功能。可以选择需要的文件系统类型,并根据需要启用或禁用相应的选项。

TechGlide的博客 747

Activity通信-传递对象、集合总结

activity之间传递对象、集合,网上的说法都大同小异,最主要都是通过实现Serializable,Parcelable接口完成,本文会总结这种常规做法,并且总结一些新的思路。传递对象传递对象方式:1:对象实现Pacelable接口(Android独有,更高效) 2:对象实现Serializable接口 3:把数据转成json格式的字符串传递,接收方

bigname22的博客 1639

SAP-MM-供应商对账平台(功能集合)

(1)集成OA审批,线上核销,结果写入SAP; (2)集成SRM,线上与供应商对账确认,写入SAP; (3)集成财务付款结果确认写入,OA回传结果,定时同步SRM供应商平台。 欢迎留言交流,功能完善,如需要页面设计,请订阅专栏

qq_32198063的博客 749

android实现json数据的解析和把数据转换成json格式的字符串

利用android sdk里面的 JSONObject和JSONArray把集合或者普通数据,转换成json格式的字符串 JSONObject和JSONArray解析json格式的字符串为集合或者一般数据 代码: package com.hck.test; import java.util.ArrayList; import java.util.List; impo

2万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android中传递对象的三种方法

编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识、前端、后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过! Android中,Activity和Fragment之间传递对象,可以通过将对象序列化并存入Bundle或者Intent中进行传递,也可以将对象转化为JSON字符串,进行传递。 序列化对象可以使用

阿良的专栏 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android activity传递对象

在android activity之间传递对象。 1,一般是通过对象实现Serializable或者Parcelable。然后将对象放在intent中,然后再在所跳转的activity中获取到这个对象。这样的实现方式的例子是有很多的,这里就不再写。 2,还有一种方式就是通过gson包, 在第一个activity中,通过new Gson().toJson(Object object);//将对

wy1987_708的专栏 681

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

安卓开发(5)-在 Activity 之间发送数据(一)

前言 在Activity交互的过程中,肯定需要在两个Activity之间传递数据。根据您的 Activity 是否希望从即将启动的新 Activity 中获取返回结果,您可以使用 startActivity() 或 startActivityForResult()方法启动新 Activity。这两种方法都需要传入一个 Intent 对象。 Intent 对象指定您要启动的 Activity,或描述...

梦否 708

欢迎关于json的入门介绍以及在安卓开发的应用

关于json的入门介绍以及在安卓开发的应用 1.json作为一种数据交换格式,有点它比xml的体积小,和xml一样拥有强大的解析 工具,缺点就是没有xml好。 2.SDK提供的方法适合android 3.0版本,这里我用的是谷歌的gson-2.3-jar,百度直接 可以搜到的,这里采用了我以前学习的案例。 3. 3.直接上代码,代码有注释。 import com.google.gson.strea...

qq_43764082的博客 396

安卓四大控件之Activity详解

创建Activity 需要在清单文件中为其配置一个activity标签 标签中如果带有这个子节点,则会在系统中多创建一个快捷图标 <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER"

BriskLyer的博客 2520

java——json工具类(json字符串转实体bean)、bean和字符串之间的转换、打印bean

本文使用谷歌的Gson来解析,导入包: implementation 'com.google.code.gson:gson:2.2.+'

wy313622821的博客 5730
上一篇: Android Edittext输入限制一位小数2位小数(n位)小数简单通用实现
下一篇: Android InputNumWatcher工具类 一行代码实现2位小数限制 多位小数限制终结者,简单易懂好用。
SingleView
博客等级 码龄10年 2粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值